« Modèle:Regex » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 175 : | Ligne 175 : | ||
* <code>?:</code> : {{wt|groupe de capture|groupe non capturant}}. Ignorer le groupe de capture lors de la numérotation des {{wt|backreference}}s. Exemple : <code>((?:sous-chaine_non_renvoyée|autre).*)</code>. |
* <code>?:</code> : {{wt|groupe de capture|groupe non capturant}}. Ignorer le groupe de capture lors de la numérotation des {{wt|backreference}}s. Exemple : <code>((?:sous-chaine_non_renvoyée|autre).*)</code>. |
||
* <code>?></code> : groupe non capturant indépendant. |
* <code>?></code> : groupe non capturant indépendant. |
||
* <code>?<=</code> : {{wt|positive lookbehind}}. |
* <code>?<=</code> : {{wt|positive lookbehind}}, vérifier (sans consommer) que ce qui précède correspond au motif spécifié. Exemple : |
||
*: Chercher une lettre u précédée d'une lettre q : <code>(?<=q)u</code> |
|||
* <code>?<!</code> : {{wt|negative lookbehind}}. |
|||
* <code>? |
* <code>?<!</code> : {{wt|negative lookbehind}}, vérifier (sans consommer) que ce qui précède ne correspond pas au motif spécifié. |
||
* <code>? |
* <code>?=</code> : {{wt|positive lookahead}}, vérifier (sans consommer) que ce qui suit correspond au motif spécifié. |
||
* <code>?!</code> : {{wt|negative lookahead}}, vérifier (sans consommer) que ce qui suit ne correspond pas au motif spécifié. Exemples : |
|||
*: Chercher une lettre q non suivie d'une lettre u : <code>q(?!u)</code> |
|||
*: <code>((?!sous-chaine_exclue).)</code> |
*: <code>((?!sous-chaine_exclue).)</code> |
||
*: <code><(?!body).*></code> : pour avoir toutes les balises HTML sauf "body". |
*: <code><(?!body).*></code> : pour avoir toutes les balises HTML sauf "body". |
Version du 11 septembre 2022 à 18:36
- Cette documentation est incluse depuis Modèle:Regex/Documentation. [rafraîchir] · [modifier] · [historique]
Utilisation
{{Programmation/Regex}} ...exemple dans le langage de programmation considéré pour [0-9]+... {{Regex|clé_de_tri|nocat=1|type=type|syntaxe=variante}} ... == Références == {{Références}}
Paramètre optionnel :
- clé_de_tri
- Clé de tri dans Expressions rationnelles
- nocat=1
- Pour ne pas catégoriser dans Expressions rationnelles
- syntaxe=variante
- Variante de la syntaxe (générale par défaut). Valeurs possibles :
- type=type
- Type d'expression régulière : Unicode (par défaut) ou Bash.
Unicode | Bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Voir aussi
- Modèle:Regex/Unicode
- Modèle:Regex/Bash
- Modèle:Programmation/Regex : Introduction sur les expression régulières, modèle à utiliser avant celui-ci.
Les expressions rationnelles peuvent être analysées et testées via un débogueur en ligne comme https://regex101.com/.
Caractère | Type | Explication |
---|---|---|
.
|
Point | N'importe quel caractère |
[...]
|
crochets | classe de caractères : tous les caractères énumérés dans la classe, avec possibilité de plages dont les bornes sont séparées par "-". Ex : [0-9a-z] pour tout l'alphanumérique en minuscule, ou [0-Z] pour tous les caractères de la table Unicode entre "0" et "Z", c'est-à-dire l'alphanumérique majuscule plus ":;<=>?@"[3].
|
[^...]
|
crochets et circonflexe | classe complémentée : tous les caractères sauf ceux énumérés. |
^
|
circonflexe | Marque le début de la chaîne ou de la ligne. |
$
|
dollar | Marque la fin de la chaîne ou de la ligne. |
|
|
barre verticale | Alternative - ou reconnaît l'un ou l'autre |
(...)
|
parenthèses | groupe de capture : utilisé pour limiter la portée d'un masque ou de l'alternative, grouper un motif répété ou capturer une séquence |
\n
|
référence | Même séquence que celle capturée précédemment par le nème groupe de capture |
\g{n}
|
référence | Même séquence que celle capturée précédemment par le nème groupe de capture |
(?P<nom>pattern)
|
Sous-motif nommé | Nomme le résultat d'un groupe de capture par un nom. |
\g{nom}
|
référence | Même séquence que celle capturée précédemment par le groupe de capture nommé nom. |
Par défaut, les caractères et groupes ne sont pas répétés. Les quantificateurs permettent de spécifier le nombre de répétitions et sont spécifiés immédiatement après le caractère ou groupe concerné.
Caractère | Type | Explication |
---|---|---|
*
|
astérisque | 0, 1 ou plusieurs occurrences |
+
|
plus | 1 ou plusieurs occurrences |
?
|
interrogation | 0 ou 1 occurrence |
{...}
|
accolades | comptage : détermine un nombre de caractères remplissant les critères qu'il suit. Exemples :
|
Par défaut les quantificateurs ne recherchent pas forcément la plus longue séquence de répétition possible. Il est possible de les suffixer avec un caractère pour modifier leur comportement.
Caractère | Type | Explication |
---|---|---|
?
|
réticent | Le quantificateur qui précède recherchera la plus petite séquence possible. |
+
|
possessif | Le quantificateur qui précède recherchera la plus grande séquence possible. |
Remarques :
- Les caractères de début et fin de chaîne (
^
et$
) ne fonctionnent pas dans[]
où ils ont un autre rôle. - Les opérateurs
*
et+
sont toujours avides, pour qu'ils laissent la priorité il faut leur apposer un?
à leur suite[4].
Classe | Signification |
---|---|
[[:alpha:]]
|
n'importe quelle lettre |
[[:digit:]]
|
n'importe quel chiffre |
[[:xdigit:]]
|
caractères hexadécimaux |
[[:alnum:]]
|
n'importe quelle lettre ou chiffre |
[[:space:]]
|
n'importe quel espace blanc |
[[:punct:]]
|
n'importe quel signe de ponctuation |
[[:lower:]]
|
n'importe quelle lettre en minuscule |
[[:upper:]]
|
n'importe quelle lettre capitale |
[[:blank:]]
|
espace ou tabulation |
[[:graph:]]
|
caractères affichables et imprimables |
[[:cntrl:]]
|
caractères d'échappement |
[[:print:]]
|
caractères imprimables exceptés ceux de contrôle |
Expression | Signification |
---|---|
\\ |
Antislash |
\C |
Caractère spécial C non interprété : [ ] { } ( ) ? * . : \ & - ^ $
|
\Q...\E |
Séquence littérale non interprétée |
\0xxx |
Caractère Unicode (1 à 3 chiffres octaux) |
\a |
Alarme (ASCII 07) |
\A |
Début de chaîne |
\b |
Caractère de début ou fin de mot |
\B |
Caractère qui n'est pas début ou fin de mot |
\cX |
Caractère de contrôle ASCII (X étant une lettre) |
\d |
Chiffre |
\D |
Non chiffre |
\e |
Escape (ASCII 1B) |
\f |
Form-feed (ASCII 0C) |
\G |
Fin de la correspondance précédente |
\h |
Espace blanc horizontal [ \t\xA0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000]
|
\H |
Non espace blanc horizontal [^\h]
|
\n |
Fin de ligne |
\pL , \p{L} , \p{Letter} |
Lettre (dans tout langage) |
\r |
Retour charriot |
\R |
Retour à la ligne, équivaut à \u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]
|
\s |
Caractères espace [ \t\n\x0B\f\r]
|
\S |
Non caractères espace [^\s]
|
\t |
Tabulation |
\v |
Espace blanc vertical [\n\x0B\f\r\x85\u2028\u2029]
|
\V |
Non espace blanc vertical [^\v]
|
\w |
Caractère alphanumérique : lettre, chiffre ou underscore |
\W |
Caractère qui n'est pas lettre, chiffre ou underscore |
\xxx |
Caractère Unicode (2 chiffres hexadécimaux) |
\x{xx...x} |
Caractère Unicode (chiffres hexadécimaux) |
\X |
Caractère Unicode du groupe de graphèmes étendu |
\z |
Fin de chaîne |
Constructeurs spéciaux : Ces fonctions précèdent l'expression à laquelle elles s'appliquent, et le tout doit être placé entre parenthèses.
?:
: groupe non capturant. Ignorer le groupe de capture lors de la numérotation des backreferences. Exemple :((?:sous-chaine_non_renvoyée|autre).*)
.?>
: groupe non capturant indépendant.?<=
: positive lookbehind, vérifier (sans consommer) que ce qui précède correspond au motif spécifié. Exemple :- Chercher une lettre u précédée d'une lettre q :
(?<=q)u
- Chercher une lettre u précédée d'une lettre q :
?<!
: negative lookbehind, vérifier (sans consommer) que ce qui précède ne correspond pas au motif spécifié.?=
: positive lookahead, vérifier (sans consommer) que ce qui suit correspond au motif spécifié.?!
: negative lookahead, vérifier (sans consommer) que ce qui suit ne correspond pas au motif spécifié. Exemples :
Options :
Les options d'interprétation sont en général spécifié à part. Mais certaines API ne permettent pas de les spécifier. Il est possible d'insérer ces options dans l'expression régulière[9].
(?:optionsactivées-optionsdésactivées)
Exemples :
- Chercher un mot composé de voyelles sans tenir compte de la casse :
(?:i)[A-Z]+
- Chercher un mot composé de voyelles en majuscules :
(?:-i)[A-Z]+
Les options s'appliquent à toute l'expression quel que soit leur position dans l'expression.
Références
- ↑ https://www.regular-expressions.info/unicode.html
- ↑ https://www.gnu.org/software/grep/manual/html_node/The-Backslash-Character-and-Special-Expressions.html
- ↑ https://unicode-table.com/fr/
- ↑ https://docstore.mik.ua/orelly/webprog/pcook/ch13_05.htm
- ↑ https://www.regular-expressions.info/posixbrackets.html
- ↑ https://www.regular-expressions.info/unicode.html
- ↑ https://www.regextester.com/15
- ↑ Jan Goyvaerts, Steven Levithan, Regular Expressions Cookbook, O'Reilly Media, Inc., (lire en ligne)
- ↑ Les options sont appelées modifiers, voir https://www.regular-expressions.info/modifiers.html