Utiliser des expressions régulières dans Visual StudioUse regular expressions in Visual Studio

Visual Studio utilise les expressions régulières du .NET Framework pour rechercher et remplacer du texte.Visual Studio uses .NET Framework regular expressions to find and replace text.

Modèles de substitutionReplacement patterns

Pour utiliser un groupe de capture numéroté, placez le groupe entre parenthèses dans le modèle d’expression régulière.To use a numbered capture group, surround the group with parentheses in the regular expression pattern. Utilisez $number, où number est un entier commençant à 1, pour spécifier un groupe numéroté spécifique dans un modèle de remplacement.Use $number, where number is an integer starting at 1, to specify a specific, numbered group in a replacement pattern. Par exemple, l’expression régulière groupée (\d)([a-z]) définit deux groupes : le premier contient un chiffre décimal unique tandis que le deuxième contient un caractère unique compris entre a et z.For example, the grouped regular expression (\d)([a-z]) defines two groups: the first group contains a single decimal digit, and the second group contains a single character between a and z. L’expression recherche quatre correspondances dans la chaîne suivante : 1a 2b 3c 4d.The expression finds four matches in the following string: 1a 2b 3c 4d. La chaîne de remplacement z$1 référence le premier groupe uniquement et convertit la chaîne en z1 z2 z3 z4.The replacement string z$1 references the first group only, and converts the string to z1 z2 z3 z4.

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 (Guide .NET).For information about regular expressions that are used in replacement patterns, see Substitutions in regular expressions (.NET guide).

Exemples d’expressions régulièresRegular expression examples

Voici quelques exemples :Here are some examples:

ObjectifPurpose ExpressionExpression ExempleExample
Correspond à n'importe quel caractère unique (sauf un saut de ligne)Match any single character (except a line break) .. a.o correspond à "aro" dans "around" et à "abo" dans "about", mais pas à "acro" dans "across".a.o matches "aro" in "around" and "abo" in "about" but not "acro" in "across".
Correspond à zéro ou plusieurs occurrences de l'expression précédente (correspond à autant de caractères que possible)Match zero or more occurrences of the preceding expression (match as many characters as possible) * a*r correspond à "r" dans "rack", à "rar" dans "ark" et à "aar" dans "aardvark"a*r matches "r" in "rack", "ar" in "ark", and "aar" in "aardvark"
Correspond à n'importe quel caractère zéro ou plusieurs fois (caractère générique *)Match any character zero or more times (Wildcard *) .*.* c.*e correspond à « cke » dans « racket », à « comme » dans « commentaire » et à « code » dans « code ».c.*e matches "cke" in "racket", "comme" in "comment", and "code" in "code"
Correspond à une ou plusieurs occurrences de l'expression précédente (correspond à autant de caractères que possible)Match one or more occurrences of the preceding expression (match as many characters as possible) + e.+d correspond à « eed » dans « feeder », mais pas à « ed ».e.+d matches "eed" in "feeder" but not "ed".
Correspond à n'importe quel caractère une ou plusieurs fois (caractère générique ?)Match any character one or more times (Wildcard ?) .+.+ e.+e correspond à "eede" dans "feeder", mais pas à "ee".e.+e matches "eede" in "feeder" but not "ee".
Correspond à zéro ou plusieurs occurrences de l'expression précédente (correspond au minimum de caractères possible)Match zero or more occurrences of the preceding expression (match as few characters as possible) *?*? e.*?e correspond à "ee" dans "feeder", mais pas à "eede".e.*?e matches "ee" in "feeder" but not "eede".
Correspond à une ou plusieurs occurrences de l'expression précédente (correspond au minimum de caractères possible)Match one or more occurrences of the preceding expression (match as few characters as possible) +?+? e.+?e correspond à "ente" et "erprise" dans "enterprise", mais pas au mot entier "enterprise".e.+?e matches "ente" and "erprise" in "enterprise", but not the whole word "enterprise".
Ancre la chaîne de correspondance au début d'une ligne ou d'une chaîneAnchor the match string to the beginning of a line or string ^ ^car correspond au mot "car" uniquement quand il apparaît au début d’une ligne.^car matches the word "car" only when it appears at the beginning of a line.
Ancre la chaîne de correspondance à la fin d'une ligneAnchor the match string to the end of a line \r?$\r?$ End\r?$ correspond au mot "end" uniquement quand il apparaît à la fin d’une ligne.End\r?$ matches "end" only when it appears at the end of a line.
Correspond à n'importe quel caractère unique d'un ensembleMatch any single character in a set [abc][abc] b[abc] correspond à "ba", "bb" et "bc".b[abc] matches "ba", "bb", and "bc".
Correspond à n'importe quel caractère dans une plage de caractèresMatch any character in a range of characters [a-f][a-f] be[n-t] correspond à "bet" dans "between", à "ben" dans "beneath" et à "bes" dans "beside", mais pas à "below".be[n-t] matches "bet" in "between", "ben" in "beneath", and "bes" in "beside", but not "below".
Capture et numérote implicitement l'expression contenue dans les parenthèsesCapture and implicitly number the expression contained within parenthesis ()() ([a-z])X\1 correspond à "aXa" et à "bXb", mais pas à "aXb".([a-z])X\1 matches "aXa"and "bXb", but not "aXb". « \1 » fait référence au premier groupe d’expressions « [a-z] »."\1" refers to the first expression group "[a-z]".
Invalide une correspondanceInvalidate a match (?!abc)(?!abc) real(?!ity) correspond à "real" dans "realty" et dans "really", mais pas dans "reality".real(?!ity) matches "real" in "realty" and "really" but not in "reality." Trouve également le deuxième « real » (mais pas le premier « real ») dans « realityreal ».It also finds the second "real" (but not the first "real") in "realityreal".
Correspond à n'importe quel caractère qui ne figure pas dans un ensemble donné de caractèresMatch any character that is not in a given set of characters [^abc][^abc] be[^n-t] correspond à "bef" dans "before », à "beh" dans "behind" et à "bel" dans "below", mais pas à "beneath".be[^n-t] matches "bef" in "before", "beh" in "behind", and "bel" in "below", but not "beneath".
Correspond à l'expression placée avant ou après le symbole.Match either the expression before or the one after the symbol. || (sponge\|mud) bath correspond à "sponge bath" et à "mud bath".(sponge\|mud) bath matches "sponge bath" and "mud bath."
Crée une séquence d'échappement pour le caractère placé après la barre oblique inverseEscape the character following the backslash \ \^ correspond au caractère ^.\^ matches the character ^.
Spécifie le nombre d'occurrences du caractère ou du groupe précédentSpecify the number of occurrences of the preceding character or group {x}, où x est le nombre d'occurrences{x}, where x is the number of occurrences x(ab){2}x correspond à "xababx", et x(ab){2,3}x correspond à "xababx" et à "xabababx", mais pas à "xababababx".x(ab){2}x matches "xababx", and x(ab){2,3}x matches "xababx" and "xabababx" but not "xababababx".
Met en correspondance du texte dans une classe de caractères Unicode, où « X » est le nombre Unicode.Match text in a Unicode character class, where "X" is the Unicode number. Pour plus d'informations sur les classes de caractères Unicode, consultezFor more information about Unicode character classes, see

Propriétés des caractères de la norme Unicode 5.2.Unicode Standard 5.2 Character Properties.
\p{X}\p{X} \p{Lu} correspond à "T" et à "D" dans "Thomas Doe".\p{Lu} matches "T" and "D" in "Thomas Doe".
Correspond à la limite d'un motMatch a word boundary \b (En dehors d’une classe de caractères, \b spécifie une limite de mot ; à l’intérieur d’une classe de caractères, \b spécifie un retour arrière.)\b (Outside a character class \b specifies a word boundary, and inside a character class specifies a backspace). \bin correspond à "in" dans "inside", mais pas dans "pinto".\bin matches "in" in "inside" but not "pinto".
Correspond à un saut de ligne (c’est-à-dire un retour chariot suivi d’une nouvelle ligne).Match a line break (that is, a carriage return followed by a new line). \r?\n\r?\n End\r?\nBegin correspond à "End" et à "Begin" uniquement quand "END" est la dernière chaîne d’une ligne et "Begin" la première chaîne de la ligne suivante.End\r?\nBegin matches "End" and "Begin" only when "End" is the last string in a line and "Begin" is the first string in the next line.
Correspond à n'importe quel caractère alphanumériqueMatch any alphanumeric character \w\w a\wd correspond à "add" et à "a1d", mais pas à "a d".a\wd matches "add" and "a1d" but not "a d".
Correspond à n'importe quel espace blancMatch any whitespace character. (?([^\r\n])\s)(?([^\r\n])\s) Public\sInterface correspond à l’expression "Public Interface".Public\sInterface matches the phrase "Public Interface".
Correspond à n'importe quel caractère numériqueMatch any numeric character \d\d \d correspond à "3" dans "3456", à "2" dans "23" et à "1" dans "1".\d matches and "3" in "3456", "2" in 23", and "1" in "1".
Correspond à un caractère UnicodeMatch a Unicode character \uXXXX où XXXX spécifie la valeur du caractère Unicode.\uXXXX where XXXX specifies the Unicode character value. \u0065 correspond au caractère "e".\u0065 matches the character "e".
Correspond à un identificateurMatch an identifier \b[_\w-[0-9]][_\w]*\b\b[_\w-[0-9]][_\w]*\b Correspond à « type1 » mais pas à « &type1 » ni « #define ».Matches "type1" but not "&type1" or "#define".
Correspond à une chaîne entre guillemetsMatch a string inside quotes ((\".+?\")|('.+?'))((\".+?\")|('.+?')) Correspond à n'importe quelle chaîne entre apostrophes ou guillemets.Matches any string inside single or double quotes.
Correspond à un nombre hexadécimalMatch a hexadecimal number \b0[xX]([0-9a-fA-F])\b\b0[xX]([0-9a-fA-F])\b Correspond à « 0xc67f » mais pas à « 0xc67fc67f ».Matches "0xc67f" but not "0xc67fc67f".
Correspond à des nombres entiers et décimauxMatch integers and decimals \b[0-9]\.*[0-9]+\b\b[0-9]\.*[0-9]+\b Correspond à « 1,333 ».Matches "1.333".

Tip

Dans les systèmes d’exploitation Windows, la plupart des lignes se terminent par « \r\n » (retour chariot suivi d’une nouvelle ligne).In Windows operating systems, most lines end in "\r\n" (a carriage return followed by a new line). Ces caractères ne sont pas visibles, mais ils sont présents dans l’éditeur et sont passés au service d’expressions régulières de .NET.These characters aren't visible, but are present in the editor and are passed to the .NET regular expression service.

Voir aussiSee also