Usar expresiones regulares en Visual StudioUse regular expressions in Visual Studio

Visual Studio usa expresiones regulares de .NET Framework para buscar y reemplazar texto.Visual Studio uses .NET Framework regular expressions to find and replace text.

Patrones de reemplazoReplacement patterns

Para usar un grupo de capturas numerado, incluya el grupo entre paréntesis en el patrón de expresión regular.To use a numbered capture group, surround the group with parentheses in the regular expression pattern. Use $number (donde number es un entero que empieza por 1) para especificar un grupo numerado concreto en un patrón de reemplazo.Use $number, where number is an integer starting at 1, to specify a specific, numbered group in a replacement pattern. Por ejemplo, la expresión regular agrupada (\d)([a-z]) define dos grupos: el primero contiene un único dígito decimal y el segundo, un solo carácter comprendido entre a y 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. La expresión encuentra cuatro coincidencias en la siguiente cadena: 1a 2b 3c 4d.The expression finds four matches in the following string: 1a 2b 3c 4d. La cadena de reemplazo z$1 hace referencia al primer grupo y convierte la cadena a z1 z2 z3 z4.The replacement string z$1 references the first group only, and converts the string to z1 z2 z3 z4.

Para más información sobre las expresiones regulares que se usan en patrones de reemplazo, vea Sustituciones en expresiones regulares (Guía de .NET).For information about regular expressions that are used in replacement patterns, see Substitutions in regular expressions (.NET guide).

Ejemplos de expresiones regularesRegular expression examples

A continuación se muestran algunos ejemplos:Here are some examples:

PropósitoPurpose ExpresiónExpression EjemploExample
Coincidencia con cualquier carácter (excepto un salto de línea)Match any single character (except a line break) .. a.o coincide con "aro" en "around" y "abo" en "about", pero no con "acro" en "across".a.o matches "aro" in "around" and "abo" in "about" but not "acro" in "across".
Coincidencia con cero o más apariciones de la expresión anterior (coincidencias con tantos caracteres como sea posible)Match zero or more occurrences of the preceding expression (match as many characters as possible) * a*r coincide con "r" en "rack", "ar" en "ark" y "aar" en "aardvark".a*r matches "r" in "rack", "ar" in "ark", and "aar" in "aardvark"
Coincidencia con cualquier carácter cero o más veces (carácter comodín *)Match any character zero or more times (Wildcard *) .*.* c.*e coincide con "cke" en "racket", "comme" en "comment" y "code" en "code"c.*e matches "cke" in "racket", "comme" in "comment", and "code" in "code"
Coincidencia con una o más apariciones de la expresión anterior (coincidencia con tantos caracteres como sea posible)Match one or more occurrences of the preceding expression (match as many characters as possible) + e.+d coincide con "eed" en "feeder", pero no con "ed".e.+d matches "eed" in "feeder" but not "ed".
Coincidencia con cualquier carácter una o más veces (carácter comodín ?)Match any character one or more times (Wildcard ?) .+.+ e.+e coincide con "eede" en "feeder", pero no con "ee".e.+e matches "eede" in "feeder" but not "ee".
Coincidencia con cero o más apariciones de la expresión anterior (coincidencia con el menor número de caracteres posible)Match zero or more occurrences of the preceding expression (match as few characters as possible) *?*? e.*?e coincide con "ee" en "feeder", pero no con "eede".e.*?e matches "ee" in "feeder" but not "eede".
Coincidencia con una o más apariciones de la expresión anterior (coincidencia con el menor número de caracteres posible)Match one or more occurrences of the preceding expression (match as few characters as possible) +?+? e.+?e coincide con "ente" y "erprise" en "enterprise", pero no con toda la palabra "enterprise".e.+?e matches "ente" and "erprise" in "enterprise", but not the whole word "enterprise".
Delimitar la cadena coincidente al principio de una cadena o líneaAnchor the match string to the beginning of a line or string ^ ^car coincide con la palabra "car" solo cuando aparece al principio de una línea.^car matches the word "car" only when it appears at the beginning of a line.
Delimitar la cadena coincidente al final de una líneaAnchor the match string to the end of a line \r?$\r?$ End\r?$ coincide con "end" solo cuando aparece al final de una línea.End\r?$ matches "end" only when it appears at the end of a line.
Coincidencia con cualquier carácter único de un conjuntoMatch any single character in a set [abc][abc] b[abc] coincide con "ba", "bb" y "bc".b[abc] matches "ba", "bb", and "bc".
Coincidir con cualquier carácter de un intervalo de caracteresMatch any character in a range of characters [a-f][a-f] be[n-t] coincide con "bet" en "between", "ben" en "beneath" y "bes" en "beside", pero no "below".be[n-t] matches "bet" in "between", "ben" in "beneath", and "bes" in "beside", but not "below".
Capturar y numerar implícitamente la expresión contenida entre paréntesisCapture and implicitly number the expression contained within parenthesis ()() ([a-z])X\1 coincide con "aXa" y "bXb", pero no con "aXb".([a-z])X\1 matches "aXa"and "bXb", but not "aXb". "\1" hace referencia al primer grupo de expresión "[a-z]"."\1" refers to the first expression group "[a-z]".
Invalidar una coincidenciaInvalidate a match (?!abc)(?!abc) real(?!ity) coincide con "real" en "realty" y "really", pero no con "reality".real(?!ity) matches "real" in "realty" and "really" but not in "reality." También encuentra el segundo “real” (pero no el primero) en “realityreal”.It also finds the second "real" (but not the first "real") in "realityreal".
Coincidir con cualquier carácter que no está en un conjunto determinado de caracteresMatch any character that is not in a given set of characters [^abc][^abc] be[^n-t] coincide con "bef" en "before", "beh" en "behind" y "bel" en "below", pero no con "beneath".be[^n-t] matches "bef" in "before", "beh" in "behind", and "bel" in "below", but not "beneath".
Coincidir con la expresión situada antes o después del símboloMatch either the expression before or the one after the symbol. || (sponge\|mud) bath coincide con "sponge bath" y "mud bath".(sponge\|mud) bath matches "sponge bath" and "mud bath."
Escape del carácter que sigue a la barra diagonal inversaEscape the character following the backslash \ \^ coincide con el carácter ^.\^ matches the character ^.
Especificar el número de apariciones del carácter o grupo precedenteSpecify the number of occurrences of the preceding character or group {x}, donde x es el número de apariciones{x}, where x is the number of occurrences x(ab){2}x coincide con "xababx" y x(ab){2,3}x coincide con "xababx" y "xabababx", pero no con "xababababx".x(ab){2}x matches "xababx", and x(ab){2,3}x matches "xababx" and "xabababx" but not "xababababx".
Coincidir con el texto de una clase de caracteres Unicode, donde "X" es el número de Unicode.Match text in a Unicode character class, where "X" is the Unicode number. Para obtener más información sobre clases de caracteres Unicode, consulte el documento sobreFor more information about Unicode character classes, see

Unicode Standard 5.2 Character Properties (Propiedades de caracteres del estándar Unicode 5.2).Unicode Standard 5.2 Character Properties.
\p{X}\p{X} \p{Lu} coincide con "T" y "D" en "Thomas Doe".\p{Lu} matches "T" and "D" in "Thomas Doe".
Coincidir con un límite de palabrasMatch a word boundary \b (fuera de una clase de caracteres \b especifica un límite de palabras y dentro de una clase de caracteres especifica un retroceso).\b (Outside a character class \b specifies a word boundary, and inside a character class specifies a backspace). \bin coincide con "in" en "inside", pero no con "pinto".\bin matches "in" in "inside" but not "pinto".
Coincidir con un salto de línea (es decir, con un retorno de carro seguido de una nueva línea).Match a line break (that is, a carriage return followed by a new line). \r?\n\r?\n End\r?\nBegin coincide con "End" y "Begin" solo cuando "End" es la última cadena en una línea y "Begin" es la primera cadena en la línea siguiente.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.
Coincidir con cualquier carácter alfanuméricoMatch any alphanumeric character \w\w a\wd coincide con "add" y "a1d", pero no con "a d".a\wd matches "add" and "a1d" but not "a d".
Coincidir con cualquier carácter de espacio en blancoMatch any whitespace character. (?([^\r\n])\s)(?([^\r\n])\s) Public\sInterface coincide con la frase "Public Interface".Public\sInterface matches the phrase "Public Interface".
Coincidir con cualquier carácter numéricoMatch any numeric character \d\d \d coincide con "3" en "3456", "2" en "23" y "1" en "1".\d matches and "3" in "3456", "2" in 23", and "1" in "1".
Coincidir con un carácter UnicodeMatch a Unicode character \uXXXX donde XXXX especifica el valor del carácter Unicode.\uXXXX where XXXX specifies the Unicode character value. \u0065 coincide con el carácter "e".\u0065 matches the character "e".
Coincidir con un identificadorMatch an identifier \b[_\w-[0-9]][_\w]*\b\b[_\w-[0-9]][_\w]*\b Coincide con "type1", pero no con "&type1" ni "#define".Matches "type1" but not "&type1" or "#define".
Coincidir con una cadena entre comillasMatch a string inside quotes ((\".+?\")|('.+?'))((\".+?\")|('.+?')) Coincide con cualquier cadena entre comillas simples o dobles.Matches any string inside single or double quotes.
Coincidir con un número hexadecimalMatch a hexadecimal number \b0[xX]([0-9a-fA-F])\b\b0[xX]([0-9a-fA-F])\b Coincide con “0xc67f”, pero no con “0xc67fc67f”.Matches "0xc67f" but not "0xc67fc67f".
Coincidir con enteros y decimalesMatch integers and decimals \b[0-9]\.*[0-9]+\b\b[0-9]\.*[0-9]+\b Coincide con “1.333”.Matches "1.333".

Sugerencia

En sistemas operativos Windows, la mayoría de las líneas terminan en "\r\n" (un retorno de carro seguido de una nueva línea).In Windows operating systems, most lines end in "\r\n" (a carriage return followed by a new line). Estos caracteres no se ven, pero están presentes en el editor y se pasan al servicio de expresiones regulares de .NET.These characters aren't visible, but are present in the editor and are passed to the .NET regular expression service.

Vea tambiénSee also