что такое регулярное выражение, чтобы найти любой текст, который имеет «abc», но не имеет «\» перед ним. поэтому он должен соответствовать 'jfdgabc', но не 'asd \ abc'. в основном, чтобы не сбежал.
Использование:
(?<!\\)abc
Это негативный взгляд назад . В основном это говорит: найди мне строку "abc", которая не , перед которой стоит обратный слеш.
Единственная проблема с этим заключается в том, что если вы хотите разрешить экранирование от обратной косой черты. Например:
123\\abcdef
(т. Е. Обратный слеш экранируется), тогда становится немного хитрее.
Попробуйте регулярное выражение:
Соответствует abc, только если ему не предшествует \
abc
\
$str = 'jfdg\abc'; var_dump(preg_match('#(?<!\\\)abc#', $str));