Отрицательное регулярное выражение — это шаблон в регулярных выражениях, который соответствует любой строке, не соответствующей указанному шаблону. Он используется для исключения определенных шаблонов или символов из набора совпадений. Вот несколько способов создания отрицательных регулярных выражений:
-
Использование оператора отрицания. Большинство механизмов регулярных выражений поддерживают оператор отрицания, обозначаемый символом каретки (^) внутри квадратных скобок ([]). Например, шаблон [^a-z] соответствует любому символу, кроме строчной буквы.
-
Негативный просмотр вперед. Просмотры — это утверждения нулевой ширины, которые соответствуют шаблону только в том случае, если за ним следует (положительный просмотр вперед) или не следует (отрицательный просмотр вперед) другой шаблон. Отрицательные прогнозы обозначаются (?!шаблоном). Например, шаблон \d+(?!.\d+) соответствует любой последовательности цифр, за которой не следует десятичная точка.
-
Отрицательные классы символов. Классы символов ([…]) можно инвертировать, используя символ каретки (^) в начале. Например, [^0–9] соответствует любому символу, кроме цифры.
-
Использование оператора дополнения. Некоторые механизмы регулярных выражений поддерживают оператор дополнения (~), который соответствует любому символу или последовательности символов, не соответствующему указанному шаблону.