| Propriétés des caractères Unicode
Depuis PHP 4.4.0 et 5.1.0, trois nouvelles séquences d'échappement
pour trouver des types de caractères sont disponibles lorsque
le mode
UTF-8
est sélectionné. Elles sont :
-
\p{xx}
- un caractère avec les propriétés xx
-
\P{xx}
- un caractère sans les propriétés xx
-
\X
- une séquence étendue Unicode
Les noms des propriétés représentés par
xx
ci-dessus
sont limités aux catégories de propriétés générales Unicode. Chaque caractère
a exactement une seule de ces propriétés, spécifié par une abréviation sur deux caractères.
Pour des raisons de compatibilité avec Perl, la négation peut être spécifiée
en incluant un accent circonflexe entre l'accolade ouvrante et le nom de la
propriété. Par exemple,
\p{^Lu}
équivaut à la même chose que
\P{Lu}
.
Si une seule lettre est spécifiée avec
\p
ou
\P
,
il inclut toutes les propriétés qui commencent par cette lettre. Dans ce cas,
en l'absence de négation, les accolades dans la séquence d'échappement sont
optionnelles ; ceci revient à la même chose :
\p{L}
\pL
|
C
|
Autre |
|
Cc
|
Contrôle |
|
Cf
|
Format |
|
Cn
|
Non affecté |
|
Co
|
Utilisation privée |
|
Cs
|
Substitut |
|
L
|
Lettre |
|
Ll
|
Lettre en minuscule |
|
Lm
|
Lettre de modification |
|
Lo
|
Autres lettres |
|
Lt
|
Lettre titrée |
|
Lu
|
Lettre en majuscule |
|
M
|
Marque |
|
Mc
|
Marque d'espacement |
|
Me
|
Marque d'enfermement |
|
Mn
|
Marque non espacée |
|
N
|
Nombre |
|
Nd
|
Nombre décimal |
|
Nl
|
Nombre Lettre |
|
No
|
Autres nombres |
|
P
|
Pnctuation |
|
Pc
|
Ponctuation de connecteur |
|
Pd
|
Tiret de ponctuation |
|
Pe
|
Ponctuation de fermeture |
|
Pf
|
Ponctuation finale |
|
Pi
|
Ponctuation initiale |
|
Po
|
Autres ponctuations |
|
Ps
|
Ponctuation ouvrante |
|
S
|
Symbole |
|
Sc
|
Symbole monétaire |
|
Sk
|
Symbole de modification |
|
Sm
|
Symbole mathématique |
|
So
|
Other symbol |
|
Z
|
Séparateur |
|
Zl
|
Séparateur de ligne |
|
Zp
|
Séparateur de paragraphe |
|
Zs
|
Séparateur d'espace |
Les propriétés étendues comme "Greek" ou "InMusicalSymbols" ne sont pas supportées
par PCRE.
Spécifié la casse pour la recherche n'affecte pas les séquences d'échappement.
Par exemple,
\p{Lu}
cherchera toujours uniquement
les lettres en majuscules
L'échappement
\X
cherchera n'importe quel numéro de caractères Unicode
qui forme une séquence étendue Unicode.
\X
est l'équivalent de
(?>\PM\pM*)
.
C'est-à-dire qu'il cherchera un caractère sans la propriété "Marque",
suivi par zéro ou plus caractères avec la propriété "Marque",
et traitera la séquence en tant que groupe atomique (voir ci-dessous).
Les caractères avec la propriété "Marque" sont typiquement des accents
qui affectent le caractère précédent.
La recherche de caractères par les propriétés Unicode n'est pas la méthode
la plus rapide, car PCRE doit chercher une structure qui contient les données
dans plus de quinze mille caractères. C'est pour cela que les séquences
d'échappement traditionnelles comme
\d
et
\w
n'utilisent pas les propriétés Unicode dans PCRE.
|