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]+
.
Séquence | Description |
---|---|
\a | Alerte (cloche). |
\b | Retour arrière (Backspace). |
\e | Caractère ESC, \x1b. |
\n | Nouvelle ligne. |
\r | Retour chariot. |
\f | Saut de page, \x0c. |
\t | Tabulation horizontale, \x09. |
\v | Tabulation verticale, \x0b. |
\oct | Caractère spécifié par un code octal à trois chiffres. |
\xhex | Caractère spécifié par un code hexadécimal. |
\cchar | Caractère de contrôle nommé. |
Sequence | Description |
---|---|
[...] | 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]. |
\d | Caractère numérique, [0-9] . |
\D | Caractère non numérique, [^0-9] . |
\s | Caractère d'espace blanc, [ \t\n\r\f\v] . |
\S | Caractère non d'espace blanc, [^ \t\n\r\f\v] . |
\w | Caractère de mot, [a-zA-Z0-9_] . |
\W | Caractère de non mot, [^a-zA-Z0-9_] . |
Sequence | Description |
---|---|
\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.
Sequence | Greedy | Description |
---|---|---|
...|... | - | Essayer les sous-paterne en alternance. |
* | yes | Correspond 0 ou plusieurs fois. |
+ | yes | Correspond 1 ou plusieurs fois. |
? | yes | Correspond 0 ou 1 fois. |
{n} | no | Correspond exactement n fois. |
{n,} | no | Correspond au moins n fois. |
{n,m} | yes | Correspond au moins n fois mais pas plus de m fois. |
*? | no | Correspond 0 ou plusieurs fois. |
+? | no | Correspond 1 ou plusieurs fois. |
?? | no | Correspond 0 ou 1 fois. |
{n,}? | no | Correspond au moins n fois. |
{n,m}? | no | Correspond au moins n fois mais pas plus de m fois. |
{MACRO} | - | Inclut la regex MACRO dans la regex courante. |
Sequence | Description |
---|---|
^ | Commence par une chaîne ou après un retour à la ligne. |
$ | Finit par une chaîne ou avant un retour à la ligne. |
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. |