Une expression régulière ou motif ou regex (de l’anglais regular expression) est une chaîne de caractères qui décrit, selon une syntaxe précise, un ensemble de chaînes de caractères possibles. Elles sont issues des théories mathématiques des langages formels.
Les expressions régulières peuvent être testées via https://regex101.com/
Tableau des correspondances
Expressions rationnelles courantes :
Pattern | Correspondance |
---|---|
* |
Toute chaîne de zéro caractère ou plus |
? |
Tout caractère unique |
+ |
1 ou plusieurs occurrences |
. |
N’importe quel caractère |
^ |
Marque le début de la chaîne ou de la ligne |
$ |
Marque la fin de la chaîne ou de la ligne |
| |
Ou |
{...} |
Nombre de caractères avant le critère : a{2} deux occurrences de “a”, a{1,10} entre 1 et 10, a{,10} jusqu’à 10 fois (de 0 à 10), a{3,} au moins 3 fois (de 3 à l’infini) |
{1..9} |
De 1 à 9 |
[abc ] |
N’importe quel caractère entre crochets |
[!abc] |
Tout caractère non compris etre crochets |
[^abc] |
Tout caractère non compris entre crochets |
[[: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 |
Plus complet : https://fr.wikibooks.org/wiki/Programmation_Bash/Regex
Expressions rationnelles Unicode
Pattern | Correspondance |
---|---|
\\ |
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 |
\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 |
\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 |
Exemples
Quelques exemples triviaux :
# echo config_{1..3}.txt |
# echo config_{A..F}{1..5}.txt |
# echo config_{A..F}{8,5}.txt |
# echo config_{2023-{A..F},1,5}.txt |
# mkdir -p tests/Projet-{A,B,C}/{2020..2023}/{Old,Version{1..5}} |
Documentation
https://fr.wikibooks.org/wiki/Programmation_Bash/Regex
https://regex101.com/