PHP 8.3.7 Released!

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

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

Классы символов Unicode не включены по умолчанию, передайте параметр --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

Классы символов 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 раз.
*?нетMatch 0 or more times.
+?нетMatch 1 or more times.
??нетСовпадение 0 или 1 раз.
{n,}?нетСовпадение не менее n раз.
{n,m}?нетСовпадение не менее n раз, но не более m раз.
{MACRO}-Включить макрос регулярного выражения в текущее регулярное выражение.

Якоря

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

Группировка

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top