Les expressions régulières sont des caractères combinés selon un motif (syntaxe) spécifique que vous pouvez utiliser avec les options avancées de recherche et/ou de remplacement. Les expressions régulières implémentées utilisent la syntaxe des motifs des expressions régulières d’ECMAScript.
La barre d'état indique si les expressions régulières utilisées sont invalides ou si la chaîne de caractères recherchée n’a pas été trouvée. Utilisez le Générateur d’expressions pour créer des motifs valides.
![]() |
Activer l’icône Avec expressions régulières dans la boîte de dialogue Rechercher |
Les caractères pour motifs spéciaux sont des caractères (ou des séquences de caractères) qui ont une signification particulière lorsqu’ils apparaissent dans une expression régulière, soit pour représenter un caractère difficile à exprimer dans une chaîne de caractères, soit pour représenter une catégorie de caractères. Chacun de ces caractères pour motifs spéciaux est mis en correspondance avec un seul caractère de la séquence cible (sauf si un quantificateur indique autrement).
Syntaxe |
Description |
Exemple |
---|---|---|
\w |
Un caractère alphanumérique ou un trait de soulignement |
|
\W |
Un caractère autre qu’un caractère alphanumérique ou un trait de soulignement |
|
\d |
Un caractère numérique |
|
\D |
Un caractère autre qu’un caractère numérique |
|
\s |
Un caractère d’espacement ou un caractère de tabulation ou un caractère de fin de ligne (CR)(LF) |
|
\S |
Un caractère autre qu’un caractère d’espacement, un caractère de tabulation et un caractère de fin de ligne (CR)(LF) |
|
\t |
Tabulateur |
|
\r\n |
Caractères de fin de ligne Dans l’éditeur ST, les lignes se terminent par "\r\n" (retour chariot suivi d’une nouvelle ligne). Ces caractères ne sont pas visibles mais présents dans l’éditeur ST et il est possible de rechercher ces caractères. Voir options : Afficher les symboles de fin de ligne -> |
|
|
Un seul caractère y compris des caractères d’espacement, de tabulation et de fin de ligne (CR)(LF) |
|
\ |
Les caractères spéciaux suivants qui sont utilisés dans les expressions régulières doivent être échappés avec la barre oblique inverse \ pour être recherchés en tant que texte : ^ $ \ . * + ? ( ) [ ] { } | Les séquences de caractères spéciaux répertoriées plus haut ne peuvent pas être échappées. |
|
[classe] |
Le caractère recherché fait partie de la classe de caractères indiquée (voir classes de caractères ci-dessous) |
|
[^classe] |
Le caractère recherché ne fait pas partie de la classe de caractères indiquée (voir classes de caractères ci-dessous) |
|
Les quantificateurs suivent un caractère ou un caractère pour motif spécial. Ils peuvent modifier le nombre d’occurrences d’un caractère recherché :
Quantificateur |
Nombre d’occurrences |
Exemple |
---|---|---|
+ |
1 ou plus |
|
* |
0 ou plus |
|
? |
0 ou 1 |
|
{int} |
Exactement le nombre défini par int |
|
{int,} |
Le nombre défini par int ou plus |
|
{min,max} |
Le nombre entre min (minimum) et max (maximum) |
|
Par défaut, tous ces quantificateurs sont gourmands (c.-à-d. qu’ils prennent autant de caractères qui remplissent la condition que possible). Ce comportement peut être remplacé pour être non gourmand (c.-à-d. qu’ils prennent le moins de caractères possible répondant à la condition) en ajoutant un point d’interrogation (?) après le quantificateur.
Quantificateur |
Nombre d’occurrences |
Exemple |
---|---|---|
+? |
1 ou plusieurs caractères, recherche non gourmande |
Motif de recherche : Texte exemple : sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Résultat de la recherche : 'abc' et 'ABC' Le moins de caractères possible trouvés entre le premier guillemet simple et le guillemet simple suivant. |
+ |
1 ou plusieurs caractères, recherche gourmande |
Motif de recherche : Texte exemple : sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Résultat de la recherche : 'abc'; sVar2 := 'ABC'; sVar3 := '' Autant de caractères possible trouvés entre le premier guillemet simple et le dernier guillemet simple. |
*? |
0 ou plusieurs caractères, recherche non gourmande |
Motif de recherche : Texte exemple : sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Résultat de la recherche : 'abc' et 'ABC' et '' |
* |
0 ou plusieurs caractères, recherche gourmande |
Motif de recherche : Texte exemple : sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Résultat de la recherche : 'abc'; sVar2 := 'ABC'; sVar3 := '' |
Les groupes permettent d’appliquer des quantificateurs à une suite de caractères (au lieu d’un seul caractère).
Groupe de caractères |
Description |
Exemple |
---|---|---|
(sous-expression) |
Capture les caractères représentant la sous-expression dans la séquence cible et les enregistre en tant que sous-motif capturé. Chaque sous-motif capturé est numéroté suivant l’ordre d’apparition de la première parenthèse ouverte (le premier sous-motif capturé a le numéro de référence arrière 1, le second le numéro de référence arrière 2, et ainsi de suite). Ce numéro de référence arrière peut être réutilisé dans la zone de recherche ou de remplacement. |
(\d) est la sous-expression du premier chiffre trouvé qui crée la première référence arrière (N=1). Cette référence arrière est utilisée avec \1 pour identifier le même contenu que celui trouvé dans la référence arrière. |
(?:sous-expression) |
Définit un groupe sans capture. |
Dans ce cas, |
\number |
Définit une référence arrière qui permet à une sous-expression précédemment trouvée d’être identifiée ultérieurement dans la même expression régulière. |
Exemple 1 : Motif de recherche : Explication du motif de recherche :
|
Les références arrière peuvent aussi être utilisées dans la chaîne de caractères de remplacement. |
Exemple 2 : Motif de recherche : Motif de remplacement : Résultat avec référence arrière est par ex. 3: iCount3 est remplacé par iValue3 |
Les assertions indiquent une position dans la chaîne de caractères à laquelle l’élément recherché doit apparaître. Lorsque vous utilisez une assertion dans votre expression de recherche, le moteur d’expression régulière n’avance pas dans la séquence cible ou ne consomme pas de caractère, il recherche une correspondance à la position indiquée uniquement.
Groupe de caractères |
Description |
Exemple |
---|---|---|
\b |
Limite de mots |
|
\B |
Pas de limite de mots |
|
^ |
Début de ligne |
Conseil Si vous appuyez sur la touche caret <^> puis sur une voyelle, par ex. a, e, i, o, le caret sera interprété comme un accent circonflexe, par ex. â, ê, î, ô, û. Pour l’éviter appuyez sur <^> puis <Espace>. |
$ |
Fin de ligne |
|
(?=sous-expression) |
Assertion avant positive Les caractères qui suivent l’assertion doivent correspondre à la sous-expression mais sans consommation de caractère. |
|
(?!sous-expression) |
Assertion avant négative Les caractères qui suivent l’assertion ne doivent pas correspondre à la sous-expression, sans consommation de caractère. |
|
Un motif peut inclure différentes alternatives :
Caractère |
Description |
Exemple |
---|---|---|
| |
Séparateur séparant deux motifs ou sous-expressions alternatifs. |
|
Pour utiliser plusieurs motifs alternatifs dans une expression régulière, séparez-les avec l’opérateur de séparation (|) : L’expression régulière renvoie un résultat si l’une des alternatives trouve une occurrence et dès qu’elle en trouve une.
L’opérateur de séparation peut également être utilisé dans les sous-expressions (dans des groupes ou assertions) pour séparer différentes alternatives.
Une classe de caractères définit un ensemble de caractères entre crochets [ ].
L’objet de l’expression régulière tente de faire correspondre l’ensemble de la classe de caractères avec un caractère de la séquence cible (sauf si un quantificateur indique autrement).
La classe de caractères peut contenir les combinaisons suivantes :
Type |
Description |
Exemple |
---|---|---|
Caractères individuels |
Tout caractère spécifié est considéré comme faisant partie de la classe (sauf caractères spéciaux - (tiret), [ (crochet ouvrant), et ] (crochet fermant). Tous les caractères pour motifs spéciaux tels que \t, \d, etc. peuvent également être utilisés dans une classe de caractères. |
|
Intervalle |
Placez un tiret (-) entre deux caractères valides pour spécifier un intervalle. |
|
Caractères échappés |
Les caractères -]\^ ont un sens spécial dans les classes de caractères. Pour qu’ils soient traités comme des caractères normaux, utilisez la barre oblique inverse (\) avant les caractères pour supprimer leur sens spécial. |
|