Отрицание строки с использованием регулярных выражений - PullRequest
34 голосов
/ 20 июля 2009

Можно ли сделать отрицание строки в регулярных выражениях? Мне нужно сопоставить все строки, которые не содержат строку "..". Я знаю, что вы можете использовать ^[^\.]*$ для сопоставления всех строк, которые не содержат ".", но мне нужно сопоставить более одного символа. Я знаю, что могу просто сопоставить строку, содержащую "..", а затем отменить возвращаемое значение совпадения, чтобы получить тот же результат, но я просто подумал, возможно ли это.

Ответы [ 2 ]

42 голосов
/ 20 июля 2009

Вы можете использовать негативные взгляды:

^(?!.*\.\.).*$

Это приводит к тому, что выражение не совпадает, если оно может найти последовательность из двух периодов в любом месте строки.

5 голосов
/ 20 июля 2009
^(?:(?!\.\.).)*$

будет соответствовать, только если в строке нет двух последовательных точек.

...