У меня тут тоже вопросик по регуляркам есть. Сюда запощу, чтоб новую тему не создавать:
Задача: заменить в строке все от # до конца строки, исключая когде впереди стоит \, типа \#
Решение: preg_replace("'([^\\\])#.+$'m", '\\1', $str);
Вопрос: можно как-нибудь без \\1 обойтись? Т.е. чтоб не заменялся первый символ, который чисто для проверки стоит.
Здесь это не так принципиально, но была задача разделить строки, где разделитель - ;, исключая комбинации \;
Тут пришлось делать так: preg_match_all("'(?:[^\\\]);'u", $str,$arr, PREG_OFFSET_CAPTURE)
, а потом вручную разделять, исользуя возвращенные смещения.