Сопоставление с шаблоном Parle

Модуль Parle поддерживает сопоставление регулярных выражений аналогично генератору flex. Поддерживаются также следующие наборы символов интерфейса POSIX: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:].

Классы символов Юникода не включены по умолчанию, передайте параметр --enable-parle-utf32, чтобы сделать классы символов доступными. Конкретная кодировка сопоставляется через правильно построенное регулярное выражение. Например, соответствие символу евро в кодировке UTF-8 задают регулярным выражением [\xe2][\x82][\xac]. Шаблон для строки в кодировке UTF-8 бывает таким: [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.

Представления символов

Представления символов
ПоследовательностьОписание
\aСимвол оповещения, сигнал.
\bСимвол возврата "Backspace".
\eСимвол ESC, \x1b.
\nНовая строка.
\rВозврат каретки.
\fРазрыв страницы, \x0c.
\tГоризонтальная табуляция, \x09.
\vВертикальная табуляция, \x0b.
\octСимвол, заданный трёхзначным восьмеричным кодом.
\xhexСимвол, заданный шестнадцатеричным кодом.
\ccharИменованный управляющий символ.

Классы символов

Классы символов
ПоследовательностьОписание
[...]Отдельный символ, который указали в символьном классе в виде списка или диапазона. Диапазоны комбинируют с операторами {+} и {-}. Например, [a-z]{+}[0-9] то же, что и [0-9a-z], а [a-z]{-}[aeiou] то же, что и [b-df-hj-np-tv-z].
[^...]Отдельный символ, который не содержится в списке или диапазоне символьного класса.
.Отдельный произвольный символ, по умолчанию [^\n].
\dОтдельная произвольная десятичная цифра, [0-9].
\DОтдельный произвольный символ, кроме десятичной цифры, [^0-9].
\sОтдельный произвольный пробельный символ, [ \t\n\r\f\v].
\SОтдельный произвольный непробельный символ, [^ \t\n\r\f\v].
\wОтдельный произвольный символ, который образует «слово», [a-zA-Z0-9_].
\WОтдельный произвольный символ, который не образует «слово», [^a-zA-Z0-9_].

Классы символов Юникода

Классы символов кодировки Unicode
ПоследовательностьОписание
\p{C}Прочие.
\p{Cc}Прочие, контрольные.
\p{Cf}Прочие, форматирование.
\p{Co}Прочие, для приватного использования.
\p{Cs}Прочие, суррогаты.
\p{L}Буквы.
\p{LC}Буквы, регистр.
\p{Ll}Буквы, в нижнем регистре.
\p{Lm}Буквы, модификаторы.
\p{Lo}Буквы, прочее.
\p{Lt}Буквы, заглавные буквы.
\p{Lu}Буквы, в верхнем регистре.
\p{M}Отметки.
\p{Mc}Отметки, двоеточия.
\p{Me}Отметки, вложения.
\p{Mn}Отметки, апострофы.
\p{N}Числа.
\p{Nd}Числа, десятичная цифра.
\p{Nl}Числа, цифры обозначаемые буквами (римские).
\p{No}Числа, прочие.
\p{P}Знаки пунктуации.
\p{Pc}Знаки пунктуации, соединители.
\p{Pd}Знаки пунктуации, тире.
\p{Pe}Знаки пунктуации, закрывающие скобки.
\p{Pf}Знаки пунктуации, закрывающие кавычки.
\p{Pi}Знаки пунктуации, открывающие кавычки.
\p{Po}Знаки пунктуации, прочее.
\p{Ps}Знаки пунктуации, открывающие скобки.
\p{S}Символы.
\p{Sc}Символы, валюты.
\p{Sk}Символы, модификаторы.
\p{Sm}Символы, математические.
\p{So}Символы, прочие.
\p{Z}Разделители.
\p{Zl}Разделители, линия.
\p{Zp}Разделители, параграф.
\p{Zs}Разделители, пробел.

Эти классы символов доступны, только если во время компиляции передали опцию --enable-parle-utf32.

Чередование и повторение

Чередование и повторение
ПоследовательностьЖадный квантификаторОписание
...|...-Попробуйте чередовать подшаблоны.
*даСовпадение 0 или более раз.
+даСовпадение 1 или более раз.
?даСовпадение 0 или 1 раз.
{n}нетСовпадение ровно n раз.
{n,}даСовпадение не меньше n раз.
{n,m}даСовпадение не меньше n раз, но не более m раз.
*?нетСовпадение 0 или больше раз.
+?нетСовпадение 1 или больше раз.
??нетСовпадение 0 или 1 раз.
{n,}?нетСовпадение не меньше n раз.
{n,m}?нетСовпадение не меньше n раз, но не более m раз.
{MACRO}-Включить макрос регулярного выражения в текущее регулярное выражение.

Якоря

Якоря
ПоследовательностьОписание
^Начало строки или после новой строки.
$Конец строки или перед новой строкой.

Группировка

Группировка
Последовательность Описание
(...) Сгруппировать регулярное выражение, чтобы переопределить приоритет операторов по умолчанию.
(?r-s:pattern) Применить опцию r и опустите опцию s при интерпретации шаблона. Параметрам разрешается быть нулём или более символов i, s или x. i — без учёта регистра. -i — с учётом регистра. s — изменяет значение ., чтобы соответствовать любому символу. -s — изменяет значение ., чтобы соответствовать любому символу кроме \n. x — игнорирует комментарии и пробелы в шаблонах. Пробелы игнорируются, если их не заэкранировали обратной косой чертой, не содержатся в "" или не появляются внутри диапазона символов. Эти параметры разрешается применять глобально на уровне правил за счёт передачи в лексер комбинации битовых флагов.
(?# comment ) Пропускает всё внутри (). Первый встретившийся символ ) завершает шаблон. В комментарии нельзя указывать символ ). Комментарий может занимать несколько строки.

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top