40. Предопределенные символьные классы в регексах Perl 6

Давайте сегодня посмотрим символьные классы, которые доступны в регексах Perl 6.

Прежде всего, шпаргалка о том, как матчить строку:

'string' ~~ /str/;

Сегодня рассмотрим символьные классы, которые записываются с обратным слешем. Часть из них совпадает с тем, что есть в Perl 5.

Белое на белом

Существует несколько классов, совпадающих с разными видами пробельных символов:

\s — любой пробельный символ, как горизонтальный, так и вертикальный;

\h — горизонтальный пробел (например, пробел или табуляция);

\v — вертикальный пробел (например, перевод строки);

\n — перевод строки;

\t — табуляция.

Обратите внимание, как работают символы при сравнении с переводом строки:

say 1 if "\n" ~~ /\s/; # 1
say 2 if "\n" ~~ /\v/; # 2
say 3 if "\n" ~~ /\h/; # не совпало

Ко всем классам существуют комплиментарные, которые записываются с большой буквой: \S, \H, \V, \N и \T — все они совпадают с соответствующими типами не-пробелов.

Черное на белом

Пара символьных классов, совпадающих с конкретными наборами символов:

\d — цифры (не только ASCII, но и все юникодные).

\w — символы, которые могут быть в словах — буквы, цифры и символ подчеркивания.

Классы с противоположным смыслом:

\D — не цифры;

\W — не то, из чего состоят слова.

2 thoughts on “40. Предопределенные символьные классы в регексах Perl 6

  1. А как же тогда матчить конкретно вертикальную табуляцию, если \v уже зарезервирован?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s