Начиная с версии 5.1.0, были добавлены три дополнительные управляющие последовательности, совпадающих с некоторыми общими символьными типами в режиме UTF-8. Вот они:
Имена свойств, представленные выше как xx, ограничены общими категориями свойств Unicode. Каждый символ имеет ровно одно такое свойство, указываемое двубуквенной аббревиатурой. Для совместимости с Perl также можно указать отрицание добавлением знака "^" между открывающей скобкой и именем свойства. Например, \p{^Lu} - это то же самое, что и \P{Lu}.
Если с \p или \P указана только одна буква, она включает все свойства, которые начинаются с этой буквы. В этом случае, если не используется отрицание, фигурные скобки необязательны; следующие два примера эквивалентны:
\p{L} \pL
Свойство | Совпадение | Замечание |
---|---|---|
C | Другое | |
Cc | Control | |
Cf | Формат | |
Cn | Не присвоено | |
Co | Частное использование | |
Cs | Суррогат | |
L | Буква | Включает следующие свойства: Ll, Lm, Lo, Lt и Lu. |
Ll | Строчная буква | |
Lm | Модификатор буквы | |
Lo | Другая буква | |
Lt | Заглавная буква | |
Lu | Прописная буква | |
M | Знак | |
Mc | Пробельный знак | |
Me | Окружающий знак | |
Mn | Непробельный знак | |
N | Число | |
Nd | Десятичное число | |
Nl | Буквенное число | |
No | Другое число | |
P | Пунктуация | |
Pc | Соединяющая пунктуация | |
Pd | Знаки тире | |
Pe | Закрывающая пунктуация | |
Pf | Заключительная пунктуация | |
Pi | Начальная пунктуация | |
Po | Другая пунктуация | |
Ps | Открывающая пунктуация | |
S | Символ | |
Sc | Денежный знак | |
Sk | Модификатор символа | |
Sm | Математический символ | |
So | Другой символ | |
Z | Разделитель | |
Zl | Разделитель строки | |
Zp | Разделитель абзаца | |
Zs | Пробельный разделитель |
Расширенные свойства, такие как греческие ("Greek") или музыкальные символы ("InMusicalSymbols") не поддерживаются в PCRE.
Указывание регистро-независимого (безрегистрового) режима не влияет на эти управляющие последовательности. Например, \p{Lu} всегда совпадает только с прописными буквами.
Последовательность \X совпадает с любым числом Unicode символов, формирующих расширенную Unicode последовательность. \X эквивалентно (?>\PM\pM*).
Это означает, что совпадет символ без свойства "знака" ("mark" property), за которым идет ноль или более символов со свойством "знака", и вся последовательность обрабатывается как одна неделимая группа (смотрите ниже). Символы со свойством "знака" - это обычно знаки ударения, влияющие на предыдущий символ.
Совпадение символов по Unicode свойству не является быстрой операцией, потому для этой цели PCRE необходимо осуществить поиск в структуре данных с более чем пятнадцатью тысяч символов. Поэтому традиционные управляющие последовательности в PCRE, такие как \d и \w, не используют Unicode свойства.