PHP регулярных выражений не избежал - PullRequest
0 голосов
/ 21 апреля 2010

что такое регулярное выражение, чтобы найти любой текст, который имеет «abc», но не имеет «\» перед ним. поэтому он должен соответствовать 'jfdgabc', но не 'asd \ abc'. в основном, чтобы не сбежал.

Ответы [ 3 ]

2 голосов
/ 21 апреля 2010

Использование:

(?<!\\)abc

Это негативный взгляд назад . В основном это говорит: найди мне строку "abc", которая не , перед которой стоит обратный слеш.

Единственная проблема с этим заключается в том, что если вы хотите разрешить экранирование от обратной косой черты. Например:

123\\abcdef

(т. Е. Обратный слеш экранируется), тогда становится немного хитрее.

0 голосов
/ 21 апреля 2010

Попробуйте регулярное выражение:

(?<!\\)abc

Соответствует abc, только если ему не предшествует \

0 голосов
/ 21 апреля 2010
$str = 'jfdg\abc';

var_dump(preg_match('#(?<!\\\)abc#', $str));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...