Инвертированные сокращения

В некоторых ситуациях бывает нужно придать любому из этих трех сокращений прямо противоположный смысл. Иначе говоря, вы хотитеиспользовать [^\d], [^\w] или [^\s], подразумевая символ, не являющийся цифрой, символом слова или пропуском соответственно. Задача легко решается при помощи их «антиподов» из верхнего регистра: \D, \W и \S. Они совпадают с любым символом, с которым не совпадает основное сокращение. Любое из этих сокращений может использоваться вместо символьного класса (занимая собственную позицию в шаблоне) или в квадратных скобках внутри большего символьного класса. Это означает, что запись /[\dA-Fa-f]+/ может использоваться для поиска шестнадцатеричных чисел, у которых буквы ABCDEF (или их аналоги в нижнем регистре) играют роль дополнительных цифр.

Еще один составной символьный класс, [\d\D], обозначает любую цифру или любую не-цифру… иначе говоря, любой символ! Это стандартный способ обозначения любого символа, в том числе и символа новой строки (в отличие от точки, совпадающей с любым символом, кроме новой строки). Наконец, стоит упомянуть совершенно бесполезную конструкцию [^\d\D], которая совпадает с любым символом, не являющимся цифрой или не-цифрой. Да, все верно – ни с чем!

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Альтернатива
Группировка в шаблонах
О метасимволах
Простые квантификаторы
Простые регулярные выражения

Вернуться в раздел: Perl / 6. В мире регулярных выражений