Отрицание строки с использованием регулярных выражений

StackOverflow https://stackoverflow.com/questions/1153856

Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top