====== Expregs : La Syntaxe ====== =====Motif de recherche===== ====Les caractères==== . Un point désigne n'importe quel caractère. Tout autre caractère, s'il ne fait pas parti de la syntaxe des expressions régulières, se désigne lui-même. Exemples : * ''a.c'' désigne littéralement "la lettre a, puis n'importe quel caractère, puis la lettre c". Cela pourrait être ''abc'' ou ''a:c'' mais pas ''123''. * ''.-5%'' désigne littéralement "n'importe quel caractère, un tiret, le chiffre 5 puis le symbole pourcent". Cela pourrait être ''a-5%'' mais pas ''a-6%'' ou ''a5%''. Les expressions régulières dans Notepad++ ne sont sensibles à la casse que si l'option de recherche //Respecter la casse// est activée. Si c'est le cas, le caractère majuscule ''A'' sera différencié de sa version minuscule ''a''. ====Début et fin de ligne===== ^ Un accent circonflexe désigne le début d'une ligne. $ Un signe dollar désigne la fin d'une ligne. Exemples : * ''^a'' désigne "un début de ligne, puis le caractère a". * ''^.'' désigne "un début de ligne, puis n'importe quel caractère". * ''a$'' désigne "n'importe quel caractère, puis une fin de ligne". * ''^a$'' désigne "un début de ligne, le caractère a, puis une fin de ligne", ou autrement dit : la lettre ''a'' seule sur une ligne. Lorsqu'il y a plusieurs lignes, c'est qu'il y a des retours à la ligne. Un retour de ligne est une information, un caractère comme un autre mais invisible, représenté par le symbole ''\n'', ''\r'' ou ''\r\n''. Les signes de début et de fin de ligne par contre ne sont pas des caractères existants, ce sont des instructions, une définition de la recherche. Ces signes entourent donc nécessairement un signe de début de ligne (hormis en début et fin de fichier, ne pinaillons pas). Ainsi, le texte : tomate bonjour Peut être représenté par le motif ''^tomate$\n^bonjour$''. Par défaut, le point ne comprend pas les retours à la ligne. Cela signifie que le motif ''tomate.bonjour'' ne correspond pas à l'exemple précédent, à moins que l'option ". comprend lignes retours" n'ait été cochée. Cela prend toute son importance avec l'utilisation de répétitions, où le comportement par défaut revient à un traitement ligne par ligne. ====Les répétitions==== ...* Une étoile indique que le symbole précédent est présent n'importe quel nombre de fois (même 0 fois, qu'il n'est donc pas présent). ''ab*c'' désigne par exemple littéralement "la lettre a, n'importe quel nombre de fois la lettre b, puis la lettre c". Cela peut être ''ac'', ''abc'', ''abbbbbc'', etc. ...+ Un signe plus indique que le symbole précédent est présent au moins une fois. ''ab+c'' désigne par exemple littéralement "la lettre a, au moins une fois la lettre b, puis la lettre c". Cela peut désigner ''abc'', ''abbc'', ''abbbbbc'', etc. ====Les ensembles==== [...] Un ensemble de caractères entre crochets désigne n'importe quel caractère présent dans cet ensemble. L'ordre des caractères n'a pas d'influence. ''[t8=#]'' désigne par exemple littéralement "soit la lettre t, soit le chiffre 8, soit le signe égal, soit le caractère dièse". [^...] Si l'ensemble commence par un accent circonflexe, alors cet ensemble est inversé, et désigne n'importe quel autre caractère. ''[^rto_]'' désigne par exemple littéralement "n'importe quel caractère à part les lettres r, t, o ou un tiret bas". Pour intégrer un accent circonflexe dans un ensemble et qu'il ne soit pas confondu avec une marque d'inversion, il ne faut pas le placer en début d'ensemble, par exemple ''[a^b]'' désigne "a, b ou un accent circonflexe. [...-...] Si un tiret sépare deux caractères dans un ensemble, cela désigne une plage de caractères. ''[a-z4-8]'' désigne par exemple littéralement "n'importe quelle lettre minuscule ou n'importe quelle chiffre entre 4 et 8". Pour intégrer le tiret dans un ensemble et qu'il ne soit pas confondu avec une marque de plage de caractère, il faut le placer en début ou en fin d'ensemble, par exemple ''[-a-z]'' désigne "un tiret ou une lettre". ====Les groupes==== (...) Les parenthèses définissent un groupe, ou sous-motif, qui peut être répété ou [[#syntaxe_du_motif_de_remplacement|récupéré dans un motif de remplacement]]. ''a(bc)+'' désigne par exemple littéralement "la lettre a puis au moins une fois le groupe de lettres ab". Cela pourrait correspondre à ''abc'', ''abcbc'', ''abcbcbcbcbc'', etc. ====Échappement==== \ Pour désigner un caractère qui est utilisé dans la syntaxe des expressions régulières, dont on a fait la liste ci-dessus, il faut le faire précéder d'un antislash. On dit qu'on l'échappe. Exemple piège : ''a\[bc\]'' n'est pas un ensemble. Les crochets étant échappés, ils se désignent eux-mêmes. Le motif correspond à ''a[bc]''. Dans le motif ''a[\bc]'' par contre, l'antislash est contenu dans un ensemble. Le motif désigne donc "la lettre a, puis b ou c ou un antislash", c'est à dire ''a\'', ''ab'' ou ''ac''. ====Les mots==== \< Un chevron ouvrant échappé désigne le début d'un mot. Un mot est un ensemble de caractères alphanumériques, ce signe indique donc la position qui précède un tel caractère, comme un signe de début de ligne précède une ligne. Cela correspondrait, dans le texte ''ab 87'', aux positions précédant les lettres a, b et les chiffres 8 et 7. \> Un chevron fermant échappé désigne la fin d'un mot. Un mot est un ensemble de caractères alphanumériques, ce signe indique donc la position qui précède une telle séquence. Cela correspondrait, dans le texte ''ab 87'', aux positions suivant la lettre b et le chiffre 7. \w La lettre w échappée désigne un caractère d'un mot. Un mot est un ensemble de caractères alphanumériques, ce signe correspond au motif ''[a-zA-Z0-9]''. =====Motif de remplacement===== Dans un motif de remplacement, tout caractère se désigne lui-même. Par exemple, en remplacant ''o'' par ''\(-_-)/'' dans ''bonjour'', on obtiendra le fabuleux : b\(-_-)/nj\(-_-)/ur Une seule exception quand même, qui donne au remplacement toute la puissance des expressions régulières: \0 \1 \2 \3 \4 \5 \6 \7 \8 \9 N'importe quel chiffre entre zéro et neuf, échappé, désigne le résultat d'un groupe du motif de recherche. Le premier, ''\0'', correspond au motif lui-même, entier, et les suivants aux sous-motifs. Les sous-motifs sont numérotés par ordre de parenthèse ouvrante. Par exemple, dans le motif de recherche ''(a(bc))(de)'', ''\0'' correspond à ''abcde'', ''\1'' désigne ''abc'', ''\2'' désigne ''bc'' et ''\3'' désigne ''de''.