Expresiones regulares (Visual Studio)

Actualización: noviembre 2007

Las expresiones regulares constituyen una notación concisa y flexible para buscar y reemplazar modelos de texto. Puede utilizar un conjunto específico de expresiones regulares en los campos Buscar y Reemplazar por de la Buscar y reemplazar (Ventana) cuando realice operaciones de Búsqueda rápida, Buscar en archivos, Reemplazo rápido o Reemplazar en archivos.

Para habilitar las expresiones regulares, expanda Opciones de búsqueda en la ventana Buscar y reemplazar, seleccione Uso y, a continuación, Expresiones regulares. Los botones triangulares del Generador de expresiones situados junto a los campos Buscar y Reemplazar por quedarán disponibles. Haga clic en el botón para mostrar una lista de expresiones regulares de uso frecuente. Al hacer clic en una expresión regular de la lista, ésta se inserta en la ubicación del cursor en los campos Buscar o Reemplazar por. Al hacer clic en Completar lista de caracteres aparece un tema de Ayuda en la parte inferior del Generador de expresiones. El tema contiene todas las expresiones regulares reconocidas por la opción Buscar y reemplazar de Visual Studio. Puede copiar una expresión regular del tema y pegarla en el campo Buscar o Reemplazar por. 

Nota:

Hay diferencias de sintaxis entre las expresiones regulares que pueden utilizarse en Buscar y Reemplazar por, y las que son válidas para la programación en .NET Framework. Por ejemplo, en Buscar y reemplazar, la notación de llaves {} se utiliza para expresiones etiquetadas y la expresión ez{1} detecta todas las instancias de ez seguidas de la etiqueta 1, como en Gómez1 y Martínez1. Esta sintaxis de las expresiones regulares difiere de la de .NET Framework, donde la notación {} se utiliza para cuantificadores y la expresión zo{1} detectaría todas las instancias de z seguidas exactamente de una o, como en zona pero no en zoo.

Expresiones regulares para buscar y reemplazar

Las expresiones regulares de uso frecuente que aparecen en el Generador de expresiones son las siguientes.

Expresión

Sintaxis

Descripción

Ejemplo

Cualquier carácter

.

Detecta cualquier carácter individual, excepto el carácter de salto de línea.

a.o detecta "aro" en "caro" y "abo" en "cabo", pero no encuentra ninguna coincidencia en "alto".

Cero o más

*

Detecta cero o más repeticiones de la expresión precedente, y devuelve todas las coincidencias posibles.

a*b detecta "b" en "barco" y "ab" en "abad".

e.*e detecta la palabra "endeble".

Uno o más

+

Detecta al menos una instancia de la expresión precedente.

ac+ detecta partes de palabras que contienen la letra "a" y al menos una instancia de "c", como "acceso" y "vaca".

a.+s detecta la palabra "aires".

Comienzo de línea

^

Delimita la cadena coincidente al comienzo de una línea.

^cabeza detecta la palabra "cabeza" sólo cuando aparece al principio de una línea del editor.

Fin de línea

$

Delimita la cadena coincidente al final de una línea.

fin$ detecta la palabra "fin" sólo cuando aparece al final de una línea en el editor.

Comienzo de palabra

<

Encuentra una coincidencia sólo cuando este punto del texto es el comienzo de una palabra.

<in detecta palabras que empiezan por las letras "in", como "interior" e "internacional".

Fin de palabra

>

Encuentra una coincidencia sólo cuando este punto del texto es el final de una palabra.

sa> detecta palabras que terminan con las letras "sa", como "casa" y "cosa".

Salto de línea

\n

Detecta un salto de línea independiente del sistema operativo. En una expresión de reemplazo, inserta un salto de línea.

Fin\nComienzo detecta las palabras "Comienzo" y "Fin" solamente cuando "Fin" es la última cadena de una línea y "Comienzo" es la primera cadena de la línea siguiente.

En una expresión de reemplazo,

Comienzo\nFin reemplaza la palabra "Fin" por "Comienzo" en la primera línea, inserta un salto de línea y, a continuación, reemplaza la palabra "Comienzo" por la palabra "Fin".

Un carácter cualquiera del conjunto

[]

Detecta cualquiera de los caracteres incluidos entre corchetes, []. Para especificar un intervalo de caracteres, incluya los caracteres inicial y final separados por un guión (-), como en [a-z].

be[n-t] detecta "bet" en "beta", "ben" en "beneficio" y "bes" en "beso", pero no detecta "bel" en "beligerante".

Un carácter cualquiera no perteneciente al conjunto

[^...]

Detecta cualquier carácter que no se encuentre en el grupo de caracteres que siguen a ^.

be[^n-t] detecta "bea" en "beato", "bel" en "beligerante" y "bec" en "abecedario", pero no detecta "ben" en "beneficio".

Or

|

Detecta la expresión situada antes o después del símbolo OR (|). Se utiliza normalmente en un grupo.

(esponja|gel) de baño detecta "esponja de baño" y "gel de baño".

Escape

\

Detecta el carácter que sigue a la barra diagonal inversa (\) como un carácter literal. Esto permite buscar los metacaracteres que se utilizan en las expresiones regulares, como { y ^.

\^ busca el carácter ^.

Expresión con etiquetas

{}

Detecta texto etiquetado con la expresión escrita entre llaves.

ez{1} detecta "ez1" en "Gómez1" y en "Martínez1", pero no detecta "ez" en "Pérez".

Identificador de C/C++

:i

Forma abreviada de la expresión ([a-zA-Z_$][a-zA-Z0-9_$]*).

Detecta cualquier identificador posible de C/C++.

Cadena entre comillas

:q

Forma abreviada de la expresión (("[^"]*")|('[^']*')), que detecta todos los caracteres incluidos entre comillas simples o dobles, además de las mismas comillas.

:q detecta "comillas de prueba" y 'comillas de prueba', pero no detecta la 't de can't.

Espacio o tabulación

:b

Detecta caracteres de espacio o tabulación.

interfaz:bpública detecta la frase "interfaz pública" en el texto.

Número entero

:z

Forma abreviada de la expresión ([0-9]+), que detecta cualquier combinación de caracteres numéricos.

Detecta cualquier número entero, como "1", "234", "56", etc.

La lista de todas las expresiones regulares que son válidas para las operaciones de Buscar y reemplazar es más larga de lo que puede mostrarse en el Generador de expresiones. Aunque las siguientes expresiones regulares no aparecen en el Generador de expresiones, puede utilizarlas en los campos Buscar o Reemplazar por.

Expresión

Sintaxis

Descripción

Ejemplo

Cuantificador cero o más mínimo

@

Detecta cero o más instancias de la expresión precedente, y se queda con la menor cantidad posible de caracteres.

e.@e detecta "ente" y "erprise" en "enterprise", pero no la palabra "enterprise" completa.

Cuantificador uno o más mínimo

#

Detecta una o más instancias de la expresión precedente, y se queda con la menor cantidad posible de caracteres.

ac# detecta palabras que contienen la letra "a" y al menos una instancia de "c", como "acatar".

a.#s detecta "acces" en la palabra "acceso".

Repetir n veces

^n

Detecta n repeticiones de la expresión precedente.

[0-9]^4 detecta cualquier secuencia de 4 dígitos.

Agrupamiento

()

Permite agrupar un conjunto de expresiones. Si desea encontrar dos expresiones diferentes en una misma operación de búsqueda, puede utilizar la expresión de agrupación para combinarlas.

Si desea buscar - [a-z][1-3] o - [1-10][a-z], debe combinarlas así: ([a-z][1-3]) | ([1-10][a-z]).

n-ésimo texto etiquetado

\n

En una expresión de búsqueda o reemplazo, indica el texto que coincide con la n-ésima expresión etiquetada, donde n es un número del 1 al 9.

En una expresión de reemplazo, \0 inserta la totalidad del texto coincidente.

Si busca a{[0-9]} y lo reemplaza por \1, cualquier instancia de "a" seguida de un dígito se reemplaza por el dígito que le sigue. Por ejemplo, "a1" se reemplaza por "1" y "a2" se reemplaza por "2".

Campo justificado a la derecha

\(w,n)

En una expresión de reemplazo, justifica a la derecha la n-ésima expresión etiquetada en un campo de al menos w caracteres de ancho.

Si busca a{[0-9]} y lo reemplaza por \(10,1), las apariciones de "an" se reemplazan por el entero y se justifican 10 espacios a la derecha.

Campo justificado a la izquierda

\(-w,n)

En una expresión de reemplazo, justifica a la izquierda la n-ésima expresión etiquetada en un campo de al menos w caracteres de ancho.

Si busca a{[0-9]} y lo reemplaza por \(-10,1), las apariciones de "an" se reemplazan por el entero y se justifican 10 espacios a la izquierda.

Impedir detección

~(X)

Impide una detección cuando X aparece en este punto de la expresión.

real~(idad) detecta "real" en "realeza" y en "realmente", pero no lo detecta en "realidad".

Carácter alfanumérico

:a

Detecta la expresión ([a-zA-Z0-9]).

Detecta cualquier carácter alfanumérico, como "a", "A", "w", "W", "5", etc.

Carácter alfabético

:c

Detecta la expresión ([a-zA-Z].

Detecta cualquier carácter alfabético, como "a", "A", "w", "W", etc.

Dígito decimal

:d

Detecta la expresión ([0-9]).

Detecta cualquier dígito, como "4" ó "6".

Dígito hexadecimal

:h

Detecta la expresión ([0-9a-fA-F]+).

Detecta cualquier número hexadecimal, como "1A", "ef" o "007".

Número racional

:n

Detecta la expresión (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+)).

Detecta cualquier número racional, como "2007", "1,0" ó "0,9".

Cadena alfabética

:w

Detecta la expresión ([a-zA-Z]+).

Detecta cualquier cadena que contenga solamente caracteres alfabéticos.

Escape

\e

Unicode U+001B.

Detecta el carácter de control "Escape".

Campana

\g

Unicode U+0007.

Detecta el carácter de control "Campana".

Retroceso

\h

Unicode U+0008.

Detecta el carácter de control "Retroceso".

Tabulación

\t

Unicode U+0009.

Detecta un carácter de tabulación.

Carácter Unicode

\x#### o \u####

Detecta un carácter especificado mediante un valor Unicode, donde #### son dígitos hexadecimales. Se puede especificar un carácter fuera del Plano básico multilingüe (es decir, un suplente) con el punto de código ISO 10646 o con dos puntos de código Unicode que den los valores del par suplente.

\u0065 detecta el carácter "e".

En la tabla siguiente se enumeran las abreviaturas de dos letras que se utilizan para especificar las categorías generales incluidas en la base de datos de propiedades de caracteres Unicode. Puede utilizar estas abreviaturas como parte de un juego de caracteres de expresiones regulares. Por ejemplo, la expresión [:Nd:Nl:No] detecta dígitos de cualquier tipo.

Para obtener más información sobre la base de datos de propiedades de caracteres Unicode, vea Unicode Standard 5.0 Character Properties.

Expresión

Sintaxis

Descripción

Letra mayúscula

:Lu

Detecta cualquier letra mayúscula.

Por ejemplo:

:Luna detecta "Una" pero no detecta "una".

Letra minúscula

:Ll

Detecta cualquier letra minúscula.

Por ejemplo:

:Llna detecta "una" pero no detecta "Una".

Letra inicial mayúscula

:Lt

Detecta caracteres que combinan una letra inicial mayúscula seguida de una letra minúscula; por ejemplo No y La.

Letra modificadora

:Lm

Detecta letras o signos de puntuación, como comas, acentos y comillas, que se utilizan para indicar modificaciones en la letra anterior.

Otra letra

:Lo

Detecta otras letras, como la letra gótica ahsa.

Dígito decimal

:Nd

Detecta dígitos decimales, como 0-9, y sus equivalentes de ancho completo.

Dígito de letra

:Nl

Detecta dígitos de letra, como los numerales romanos y el número cero ideográfico.

Otro dígito

:No

Detecta otros dígitos, como el número uno en cursiva antiguo.

Puntuación de apertura

:Ps

Detecta puntuación de apertura, como paréntesis y llaves de apertura.

Puntuación de cierre

:Pe

Detecta puntuación de cierre, como paréntesis y llaves de cierre.

Puntuación de comillas iniciales

:Pi

Detecta comillas dobles iniciales.

Puntuación de comillas finales

:Pf

Detecta comillas simples y comillas dobles finales.

Puntuación de guión

:Pd

Detecta el carácter de guión.

Puntuación de conector

:Pc

Detecta el subrayado o guión bajo.

Otra puntuación

:Po

Detecta (,), ?, ", !, @, #, %, &, *, \, (:), (;), ' y /.

Separador de espacio

:Zs

Detecta espacios en blanco

Separador de línea

:Zl

Detecta el carácter Unicode U+2028.

Separador de párrafo

:Zp

Detecta el carácter Unicode U+2029.

Marca sin espacio

:Mn

Detecta marcas sin espacio.

Marca de combinación

:Mc

Detecta marcas de combinación.

Marca contenedora

:Me

Detecta marcas contenedoras.

Símbolo matemático

:Sm

Detecta +, =, ~, |, < y >.

Símbolo de moneda

:Sc

Detecta $ y otros símbolos de moneda.

Símbolo modificador

:Sk

Detecta símbolos modificadores, como los acentos circunflejo y grave, y el símbolo de vocal larga.

Otro símbolo

:So

Detecta otros símbolos como el del copyright, antígrafo y el de grado.

Otro control

:Cc

Detecta caracteres de control Unicode como TAB y NEWLINE.

Otro formato

:Cf

Detecta caracteres de control de formato, como los caracteres de control bidireccional.

Suplente

:Cs

Detecta la mitad de un par suplente.

Otros caracteres de uso privado

:Co

Detecta cualquier carácter del área de uso privado.

Otro no asignado

:Cn

Detecta caracteres no asignados a caracteres Unicode.

Además de las propiedades de caracteres Unicode estándar, también pueden especificarse las siguientes propiedades como parte de un juego de caracteres.

Expresión

Sintaxis

Descripción

Alfabético

:Al

Detecta cualquier carácter.

Por ejemplo, :Alna detecta palabras como "Una", "una" y "laguna".

Numérico

:Nu

Detecta cualquier número o dígito.

Puntuación

:Pu

Detecta cualquier signo de puntuación, como ?, @, ', etc.

Espacio en blanco

:Wh

Detecta todos los tipos de espacio en blanco, como los de publicación e ideográficos.

Bidireccional

:Bi

Detecta caracteres de alfabetos de derecha a izquierda, como el árabe y el hebreo.

Hangul

:Ha

Detecta caracteres Hangul coreanos y caracteres Jamos de combinación.

Hiragana

:Hi

Detecta caracteres hiragana.

Katakana

:Ka

Detecta caracteres katakana.

Ideográfico/Han/Kanji

:Id

Detecta caracteres ideográficos, como los caracteres han y kanji.

Vea también

Referencia

Caracteres comodín (Visual Studio)

Búsqueda rápida, Buscar y reemplazar (Ventana)

Reemplazo rápido, Buscar y reemplazar (Ventana)

Buscar en archivos, Buscar y reemplazar (Ventana)

Reemplazar en archivos, Buscar y reemplazar (Ventana)

Comandos de Visual Studio con argumentos

Otros recursos

Buscar y reemplazar