A partir de 5.1.0, están disponibles tres secuencias de escape adicionales para comparar tipos de caracteres genéricos cuando el modo UTF-8 está seleccionado. Son:
Los nombres de las propiedades representadas arriba por xx están limitadas a las propiedades de la categoría general de Unicode. Cada carácter tiene exactamente una propiedad, especificada por una abreviatura de dos letras. Por compatibilidad con Perl, la negación se puede especificar incluyendo un acento circunflejo entre la llave de apertura y el nombre de la propiedad. Por ejemplo, \p{^Lu} es lo mismo que \P{Lu}.
Si sólo se especifica una letra con \p o \P, se incluyen todas las propiedades que comienzan con esa letra. En este caso, en la ausencia de negación, las llaves en la secuencia de escape son opcionales; estos dos ejemplos tienen el mismo efecto:
\p{L} \pL
Propiedad | Coincidencias | Notas |
---|---|---|
C | Otro | |
Cc | Control | |
Cf | Formato | |
Cn | Sin asignar | |
Co | Uso privado | |
Cs | Sustituto | |
L | Letra | Incluye las siguientes propiedades: Ll, Lm, Lo, Lt y Lu. |
Ll | Letra minúscula | |
Lm | Letra modificadora | |
Lo | Otra letra | |
Lt | Letra de título | |
Lu | Letra mayúscula | |
M | Marca | |
Mc | Marca de espacio | |
Me | Marca de cierre | |
Mn | Marca de no-espacio | |
N | Número | |
Nd | Número decimal | |
Nl | Número letra | |
No | Otro número | |
P | Puntuación | |
Pc | Puntuación de conexión | |
Pd | Puntuación guión | |
Pe | Puntuación de cierre | |
Pf | Puntuación final | |
Pi | Puntuación inicial | |
Po | Otra puntuación | |
Ps | Puntuación de apertura | |
S | Símbolo | |
Sc | Símbolo de moneda | |
Sk | Símbolo modificador | |
Sm | Símbolo matemático | |
So | Otro símbolo | |
Z | Separador | |
Zl | Separador de línea | |
Zp | Separador de párrafo | |
Zs | Separador de espacio |
Las propiedades extendidas tales como InMusicalSymbols no están admitidas por PCRE.
El especificar coincidicencias insensibles a mayúsculas-minúsculas no afecta a estas secuencias de escape. Por ejemplo, \p{Lu} siempre coincide con letras mayúsculas.
Los conjuntos de caracteres Unicode están definidos como pertenecientes a ciertos alfabetos. Se puede hacer coincidir un carácter de uno de estos conjuntos usando un nombre de alfabeto. Por ejemplo:
Aquellos que no son parte de un alfabeto identificado, son metidos en el mismo saco como Common. La lista actual de alfabetos es:
Arabic | Armenian | Avestan | Balinese | Bamum | |
Batak | Bengali | Bopomofo | Brahmi | Braille | |
Buginese | Buhid | Canadian_Aboriginal | Carian | Chakma | |
Cham | Cherokee | Common | Coptic | Cuneiform | |
Cypriot | Cyrillic | Deseret | Devanagari | Egyptian_Hieroglyphs | |
Ethiopic | Georgian | Glagolitic | Gothic | Greek | |
Gujarati | Gurmukhi | Han | Hangul | Hanunoo | |
Hebrew | Hiragana | Imperial_Aramaic | Inherited | Inscriptional_Pahlavi | |
Inscriptional_Parthian | Javanese | Kaithi | Kannada | Katakana | |
Kayah_Li | Kharoshthi | Khmer | Lao | Latin | |
Lepcha | Limbu | Linear_B | Lisu | Lycian | |
Lydian | Malayalam | Mandaic | Meetei_Mayek | Meroitic_Cursive | |
Meroitic_Hieroglyphs | Miao | Mongolian | Myanmar | New_Tai_Lue | |
Nko | Ogham | Old_Italic | Old_Persian | Old_South_Arabian | |
Old_Turkic | Ol_Chiki | Oriya | Osmanya | Phags_Pa | |
Phoenician | Rejang | Runic | Samaritan | Saurashtra | |
Sharada | Shavian | Sinhala | Sora_Sompeng | Sundanese | |
Syloti_Nagri | Syriac | Tagalog | Tagbanwa | Tai_Le | |
Tai_Tham | Tai_Viet | Takri | Tamil | Telugu | |
Thaana | Thai | Tibetan | Tifinagh | Ugaritic | |
Vai | Yi |
El escape \X coincide con un cluster de grafemas ampliado de Unicode. Un clúster de grafemas ampliado es uno o más caracteres Unicode que se combinan para formar un único glifo. A todos los efectos, se puede pensar en ello como el equivalente Unicode de . ya que coincidirá con un carácter compuesto, independientemente de cúantos caracteres individuales se usan en realidad para representarlo.
En versiones de PCRE anteriores a la 8.32 (las cuales se corresponden con versiones de PHP anteriores a la 5.4.14 al usar la biblioteca PCRE incluida), \X es equivalente a (?>\PM\pM*). Esto es, coincide con un carácter sin la propiedad "marca", seguido de cero o más caracteres con la propiedad "marca", y trata la secuencia como un grupo atómico (véase más abajo). Los caracteres con la propiedad "marca" son normalmente acentos que afectan al carácter predecente.
La comparación de caracteres por propiedades Unicode no es rápida, porque PCRE ha de buscar una estructura que contiene datos por más de quince mil caracteres. Es por esto por lo que las secuencias de escape tradicionales tales como \d y \w no usan propiedades Unicode en PCRE.