Вы можете сопоставить любые 1+ символов, кроме запятой и обратной косой черты, или любую escape-последовательность, используя
/(?:[^\\,]|\\.)+/s
В PHP:
$regex = '~(?:[^\\,]|\\.)+~s';
См. Демонстрационную версию регулярного выражения .
Подробности
(?:
- начало группы без захвата: [^\\,]
- любой символкроме \
и запятой |
- или \\.
- \
, за которым следует любой символ, включая символы разрыва строки (из-за модификатора s
)
)+
- конец группы, повторите 1 или более раз.
Более эффективная версия регулярного выражения (при условии, что совпадение должно начинаться ссимвол, отличный от пробела и запятой):
/(?=[^,\s])[^\\,]*(?:\\.[^\\,]*)*/s
В PHP:
$regex = '/(?=[^,\s])[^\\\\,]*(?:\\\\.[^\\\\,]*)*/s';
См. это демонстрационное выражение регулярного выражения
* (?=[^,\s])
для положительного взгляда требуется, чтобы символом справа был любой символ, кроме ,
и пробела, а [^\\,]*(?:\\.[^\\,]*)*
- развернутый эквивалент регулярного выражения, объясненного выше.