Desde 5.1.0, tres secuencias de escape adicionales para coincidir con tipos de caracteres genéricos están disponibles cuando se selecciona el modo UTF-8. Son:
un carácter con la propiedad xx
un carácter sin la propiedad xx
una secuencia Unicode extendida
Los nombres de propiedades representados por xx arriba están limitados
a las propiedades generales de categoría Unicode. Cada carácter tiene exactamente una
de estas propiedades, especificada por una abreviatura de dos letras. Para compatibilidad con
Perl, la negación puede especificarse incluyendo un circunflejo entre la llave de apertura y el nombre de la propiedad. Por ejemplo, \p{^Lu}
es lo mismo que \P{Lu}.
Si solo se especifica una letra con \p o
\P, incluye todas las propiedades que comienzan con esa
letra. En este caso, en ausencia de negación, las llaves en la
secuencia de escape son opcionales; estos dos ejemplos tienen el mismo efecto:
\p{L}
\pL
| Propiedad | Coincide con | Notas |
|---|---|---|
C |
Otro | |
Cc |
Control | |
Cf |
Formato | |
Cn |
No asignado | |
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 con mayúscula inicial | |
Lu |
Letra mayúscula | |
M |
Marca | |
Mc |
Marca de espacio | |
Me |
Marca de cierre | |
Mn |
Marca no espaciada | |
N |
Número | |
Nd |
Número decimal | |
Nl |
Número de letra | |
No |
Otro número | |
P |
Puntuación | |
Pc |
Puntuación de conexión | |
Pd |
Puntuación de 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 | Incluye emojis |
Z |
Separador | |
Zl |
Separador de línea | |
Zp |
Separador de párrafo | |
Zs |
Separador de espacio |
Las propiedades extendidas como InMusicalSymbols no
son soportadas por PCRE.
Especificar coincidencia sin distinción de mayúsculas y minúsculas no afecta estas secuencias de escape.
Por ejemplo, \p{Lu} siempre coincide solo con letras mayúsculas.
Los conjuntos de caracteres Unicode están definidos como pertenecientes a ciertos scripts. Un carácter de uno de estos conjuntos puede coincidir usando un nombre de script. Por ejemplo:
\p{Greek}
\P{Han}
Aquellos que no son parte de un script identificado se agrupan juntos como
Common. La lista actual de scripts 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 |
La secuencia de escape \X coincide con un grupo de grafemas extendido de Unicode. Un grupo de grafemas extendido es uno o más caracteres Unicode
que se combinan para formar un solo glifo. En efecto, esto puede considerarse como
el equivalente de Unicode de . ya que coincidirá con un
carácter compuesto, independientemente de cuántos caracteres individuales se
utilicen realmente para renderizarlo.
En versiones de PCRE anteriores a 8.32 (que corresponde a versiones de PHP anteriores a 5.4.14 cuando se usa la biblioteca PCRE incluida), \X
es equivalente a (?>\PM\pM*). Es decir, 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 (ver
Subpatrones de una sola vez). Los caracteres con la propiedad "marca" son típicamente acentos que afectan al carácter anterior.
Coincidir con caracteres por propiedad Unicode no es rápido, porque PCRE tiene
que buscar una estructura que contiene datos para más de quince mil
caracteres. Por eso las secuencias de escape tradicionales como
\d y \w no usan propiedades Unicode
en PCRE.