Utilisation d'expressions régulières dans Visual Studio
Visual Studio utilise les expressions régulières .NET Framework pour rechercher et remplacer du texte.Dans Visual Studio 2010 et les versions antérieures, Visual Studio utilisait la syntaxe d'expression régulière personnalisée dans les fenêtres de l'option Rechercher et remplacer.Cette rubrique explique comment convertir certains symboles des expressions régulières personnalisées les plus utilisés en versions .NET.
Conseil |
---|
Dans les systèmes d'exploitation Windows, la plupart des lignes se terminent par "\r\n" (retour chariot suivi d'une nouvelle ligne).Ces caractères ne sont pas visibles, mais sont présents dans l'éditeur et transmis au service des expressions régulières du .NET. |
Pour plus d'informations, consultez Expressions régulières du .NET Framework.
Conseil |
---|
Pour plus d'informations sur les expressions régulières utilisées dans les modèles de remplacement, consultez Substitutions dans les expressions régulières.Pour utiliser un groupe de captures numérotées, la syntaxe est $1 pour spécifier le groupe numéroté et (x) pour spécifier le groupe en question.Par exemple, l'expression régulière groupée (\d)([a-z]) recherche quatre correspondances dans la chaîne suivante : 1a 2b 3c 4d.La chaîne de remplacement z$1 convertit cette chaîne en z1 z2 z3 z4> La syntaxe équivalente dans Visual Studio 2010 est {:z}([a-z]) pour l'expression régulière groupée et z\1 pour la chaîne de remplacement. |
Comparaison des expressions régulières du .NET Framework
Vous pouvez convertir les expressions régulières de la version utilisée dans les versions antérieures de Visual Studio en expressions régulières du .NET Framework à l'aide du tableau suivant.
Objectif |
Nouveau |
Ancienne |
Nouvel exemple |
---|---|---|---|
Correspond à n'importe quel caractère unique (sauf un saut de ligne) |
. |
. |
t.u correspond à "tou" dans "tourisme" et "tau" dans "taureau", mais pas à "talu" dans "talus". |
Correspond à zéro ou plusieurs occurrences de l'expression précédente (correspond à autant de caractères que possible) |
* |
* |
a*r correspond à « r »" dans « rack », à « ar » dans « ark » et à « aar » dans « aardvark » |
Correspond à un caractère zéro ou plusieurs fois (caractère générique *) |
.* |
.* |
c.*e correspond à « cke » dans « racket », « comme » dans « comment », et « code » dans « code » |
Correspond à une ou plusieurs occurrences de l'expression précédente (correspond à autant de caractères que possible) |
+ |
+ |
e.+e correspond à « eede » dans « feeder » mais pas dans « ee ». |
Correspond à un caractère une ou plusieurs fois (caractère générique ?) |
.+ |
.+ |
e.+e correspond à « eede » dans « feeder » mais pas dans « ee ». |
Correspond à zéro ou plusieurs occurrences de l'expression précédente (correspond au moins de caractères possible) |
*? |
@ |
e.* ? e correspond à « ee » dans « feeder » mais pas dans « eede ». |
Correspond à une ou plusieurs occurrences de l'expression précédente (correspond au moins de caractères possible) |
+? |
# |
e.+?e correspond à "entr" et "reprise" dans "entreprise", mais pas au mot entier "entreprise". |
Ancrer la chaîne de correspondance au début d'une ligne ou d'une chaîne |
^ |
^ |
^car correspond au mot « car » uniquement lorsqu'il apparaît au début d'une ligne. |
Ancrer la chaîne de correspondance à la fin d'une ligne |
\r?$ |
$ |
End\r?$ correspond à « end » seulement lorsqu'il apparaît à la fin d'une ligne. |
Correspond à un caractère unique d'un ensemble |
[abc] |
[abc] |
b[abc] correspond à « ba », « bb » et « bc ». |
Correspond à un caractère compris dans une plage de caractères |
[a-f] |
[x-y] |
te[l-r] correspond à "tel" dans "telle", "ter" dans "terre" et "ten" dans "tente", mais pas à "testament". |
Capture et numérote implicitement l'expression contenue dans les parenthèses |
() |
() |
([a-z]) X\1 correspond à aXa et bXb, mais pas à aXb. ". « \1 » fait référence au premier groupe d'expression « [a-z] ». |
Invalider une correspondance |
(?!abc) |
~(abc) |
real (?!ity) correspond à « real » dans « realty » et à « really » mais pas à « reality ». Trouve également le deuxième "real" (mais pas le premier "real") dans "realityreal". |
Correspondre à tout caractère qui ne figure pas dans un ensemble donné de caractères |
[^abc] |
[^abc] |
do[^n-t] correspond à "dor" dans "dormir", "dos" dans "dossier" et "doc" dans "docile", mais pas à "donneur". |
Correspond à l'expression placée avant ou après le symbole. |
| |
| |
compte (courant|rendu) retourne « compte courant » et « compte rendu ». |
Créer une séquence d'échappement pour le caractère suivant la barre oblique inverse |
\ |
\ |
\^ correspond au caractère ^. |
Spécifier le nombre d'occurrences du caractère ou du groupe précédent |
{x}, où x est le nombre d'occurrences |
\x, où x est le nombre d'occurrences |
x(ab){2}x correspond à « xababx », et x(ab){2,3}x correspond à « xababx » et « xabababx », mais pas à « xababababx ». |
Correspondre à du texte dans une classe de caractères Unicode, où « X » est le numéro Unicode.Pour plus d'informations sur les classes de caractères Unicode, consultez |
\p{X} |
:X |
\p{Lu} correspond à « T » et « D » dans « Thomas Doe ». |
Correspond à une limite de mot |
\b (En dehors d'une classe de caractères, \b spécifie une limite de mot, et à l'intérieur d'une classe de caractères, \b spécifie un retour arrière). |
< et > spécifient le début et la fin d'un mot |
\bin correspond à « in » dans « inside » mais pas « pinto ». |
Correspondre à un saut de ligne (c'est-à-dire un retour chariot suivi d'une nouvelle ligne). |
\r?\n |
\n |
End\r?\nBegin correspond uniquement à "Fin" et "Début" lorsque "End" est la dernière chaîne d'une ligne et "Begin" la première chaîne de la ligne suivante. |
Correspond à un caractère alphanumérique |
\w |
:a |
a\wd correspond à « add » et à « a1d » mais pas à « a d ». |
Correspond à tout caractère espace blanc. |
(?([^\r\n])\s) |
:b |
Public\sInterface correspond à l'expression « Public Interface ». |
Correspond à n'importe quel caractère numérique |
\d |
:d |
\d correspond à 3 dans 3456, 2 dans 23 et 1 dans 1. |
Correspond à un caractère Unicode |
\uXXXX où XXXX spécifie la valeur du caractère Unicode. |
\uXXXX où XXXX spécifie la valeur du caractère Unicode |
\u0065 correspond au caractère "e". |
Correspondre à un identificateur |
\b(_\w+|[\w-[0-9_]]\w*)\b |
:i |
Correspond à type1 mais pas à &type1 ou #define. |
Correspondre à une chaîne entre guillemets |
((\".+?\")|('.+?')) |
:q |
Correspond à toutes les chaînes entre apostrophes ou guillemets. |
Correspondre à un nombre hexadécimal |
\b0[xX]([0-9a-fA-F])\b |
:h |
Correspond à "0xc67f" mais pas à "0xc67fc67f". |
Correspond aux nombres entiers et décimaux |
\b[0-9]*\.*[0-9]+\b |
:n |
Correspond à 1,333. |