International PHP Conference Berlin 2025

Correspondance de paterne Parle

Parle supporte la correspondance de paterne avec des expressions régulières similaires à flex. Les ensembles de caractères POSIX suivants sont également supportés : [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:] .

Les classes de caractères Unicode ne sont actuellement pas activées par défaut, passez --enable-parle-utf32 pour les rendre disponibles. Un encodage particulier peut être mappé avec une regex correctement construite. Par exemple, pour correspondre au symbole EURO encodé en UTF-8, l'expression régulière [\xe2][\x82][\xac] peut être utilisée. Le paterne pour une chaîne encodée en UTF-8 pourrait être [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.

Représentation des caractères

Représentation des caractères
SéquenceDescription
\aAlerte (cloche).
\bRetour arrière (Backspace).
\eCaractère ESC, \x1b.
\nNouvelle ligne.
\rRetour chariot.
\fSaut de page, \x0c.
\tTabulation horizontale, \x09.
\vTabulation verticale, \x0b.
\octCaractère spécifié par un code octal à trois chiffres.
\xhexCaractère spécifié par un code hexadécimal.
\ccharCaractère de contrôle nommé.

Classes de caractères

Classes de caractères
SequenceDescription
[...]Un seul caractère listé ou contenu dans une plage listée. Les plages peuvent être combinées avec les opérateurs {+} et {-}. Par exemple [a-z]{+}[0-9] est la même chose que [0-9a-z] et [a-z]{-}[aeiou] est la même chose que [b-df-hj-np-tv-z].
[^...]Un seul caractère non listé et non contenu dans une plage listée.
.N'importe quel caractère, par défaut [^\n].
\dCaractère numérique, [0-9].
\DCaractère non numérique, [^0-9].
\sCaractère d'espace blanc, [ \t\n\r\f\v].
\SCaractère non d'espace blanc, [^ \t\n\r\f\v].
\wCaractère de mot, [a-zA-Z0-9_].
\WCaractère de non mot, [^a-zA-Z0-9_].

Classes de caractères Unicode

Classes de caractères Unicode
SequenceDescription
\p{C}Autre.
\p{Cc}Autre, contrôle.
\p{Cf}Autre, format.
\p{Co}Autre, utilisation privée.
\p{Cs}Autre, substitut.
\p{L}Lettre.
\p{LC}Lettre, casée.
\p{Ll}Lettre, minuscule.
\p{Lm}Lettre, modifiée.
\p{Lo}Lettre, autre.
\p{Lt}Lettre, de titre.
\p{Lu}Lettre, majuscule.
\p{M}Marque.
\p{Mc}Marque, espace combiné.
\p{Me}Marque, encadrant.
\p{Mn}Marque, non espacé.
\p{N}Nombre.
\p{Nd}Nombre, chiffre décimal.
\p{Nl}Nombre, lettre.
\p{No}Nombre, autre.
\p{P}Ponctuation.
\p{Pc}Ponctuation, connecteur.
\p{Pd}Ponctuation, tiret.
\p{Pe}Ponctuation, fermeture.
\p{Pf}Ponctuation, guillemet final.
\p{Pi}Ponctuation, guillemet initial.
\p{Po}Ponctuation, autre.
\p{Ps}Ponctuation, ouverture.
\p{S}Symbole.
\p{Sc}Symbole, devise.
\p{Sk}Symbole, modifié.
\p{Sm}Symbole, math.
\p{So}Symbole, autre.
\p{Z}Séparateur.
\p{Zl}Séparateur, ligne.
\p{Zp}Séparateur, paragraphe.
\p{Zs}Séparateur, espace.

Ces classe de caractères ne sont disponibles que si l'option --enable-parle-utf32 a été passée lors de la compilation.

Alternance et répétition

Alternance et répétition
SequenceGreedyDescription
...|...-Essayer les sous-paterne en alternance.
*yesCorrespond 0 ou plusieurs fois.
+yesCorrespond 1 ou plusieurs fois.
?yesCorrespond 0 ou 1 fois.
{n}noCorrespond exactement n fois.
{n,}noCorrespond au moins n fois.
{n,m}yesCorrespond au moins n fois mais pas plus de m fois.
*?noCorrespond 0 ou plusieurs fois.
+?noCorrespond 1 ou plusieurs fois.
??noCorrespond 0 ou 1 fois.
{n,}?noCorrespond au moins n fois.
{n,m}?noCorrespond au moins n fois mais pas plus de m fois.
{MACRO}-Inclut la regex MACRO dans la regex courante.

Ancre

Ancre
SequenceDescription
^Commence par une chaîne ou après un retour à la ligne.
$Finit par une chaîne ou avant un retour à la ligne.

Regroupement

Regroupement
Sequence Description
(...) Regroupe une expression régulière pour modifier l'ordre d'évaluation.
(?r-s:pattern) Applique l'option r et omet l'option s lors de l'interprétation du paterne. Les options peuvent être zéro ou plusieurs des caractères i, s ou x. i signifie insensible à la casse. -i signifie sensible à la casse. s modifie le sens de . pour correspondre à n'importe quel caractère. -s modifie le sens de . pour correspondre à n'importe quel caractère sauf \n. x ignore les commentaires et les espaces dans les paterne. Les espaces sont ignorés sauf s'ils sont échappés par un backslash, contenus dans des ""s, ou apparaissent à l'intérieur d'une plage de caractères. Ces options peuvent être appliquées globalement au niveau des règles en passant une combinaison des indicateurs de bits à l'analyseur lexical.
(?# comment ) Omet tout ce qui est dans (). Le premier caractère ) rencontré termine le paterne. Il n'est pas possible pour le commentaire de contenir un caractère ). Le commentaire peut s'étendre sur plusieurs lignes.

add a note

User Contributed Notes

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