|
|
|
| Подскажите, в чем проблема - не могу найти ошибку.
Строка: 1_1|fieldsep|1_2
Рег. выражение: ^.*\|fieldsep2\|.*$
Проблема в том, что это выражение выдает результатом true, хотя после слова fieldsep в регвыражении присутствует еще один символ. | |
|
|
|
|
автор: ..... (01.11.2010 в 16:30) |
|
|
для: RegEditor
(01.11.2010 в 16:09)
| | выражение - строка в двойных кавычках? (возможная причина)
вавой ЯП (язык программирования) ? | |
|
|
|
|
|
|
|
для: .....
(01.11.2010 в 16:30)
| | при чем тут язык программирования? PHP, но используется MySQL в чистом виде:
select '$reg' regexp '$s' | |
|
|
|
|
автор: ..... (01.11.2010 в 17:51) |
|
|
для: RegEditor
(01.11.2010 в 17:07)
| | не сразу заметил в каком форуме тема :)
причина та-же самая \| интерпритируется как просто |
? пробуйте \\| , \\\| , и возможно даже \\\\|
// с ходу не соображу как правильнее и чего в $s и применяются-ли где нибудь escape-функции | |
|
|
|
|
|
|
|
для: .....
(01.11.2010 в 17:51)
| | скажу сразу, метод трех слешей сработал, только я так и не понимаю, почему.
мне ведь по идее и нужно просто |, т.е. у меня есть текст такого вида: a|b|c, где | - разделитель. мне нужно произвести поиск такого рода, чтобы b равнялось, например, нулю.
имеем код
select '1|2|3' regexp '^.*\|2\|.*$'
(я, кстати, когда выше писал случайно местами их поменял, изначально-то у меня вариант правильный).
и по идее mysql именно в таком виде и должен получить, \| заменяется на | в выражении - и должен был бы быть желаемый результат. загадка..
В любом случае, большое спасибо за помощь! А если еще объясните, почему двойное экранирование происходит - будет вообще здорово :) | |
|
|
|