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. |