Sunteți pe pagina 1din 12

Lenguaje de expresiones regulares -

Referencia rápida
Una expresión regular es un modelo con el que el motor de expresiones regulares intenta
buscar una coincidencia en el texto de entrada. Un modelo consta de uno o más literales de
carácter, operadores o estructuras. Para obtener una breve introducción, consulte
Expresiones regulares de .NET.

Cada sección de esta referencia rápida enumera una categoría determinada de caracteres,
operadores y construcciones que puede usar para definir expresiones regulares.

Esta información también se proporciona en dos formatos que se pueden descargar e


imprimir para facilitar su consulta:

 Descargar en formato Word (.docx)


 Descarga en formato PDF (.pdf)

Escapes de carácter
El carácter de barra diagonal inversa (\) en una expresión regular indica que el carácter que
le sigue es un carácter especial (como se muestra en la tabla siguiente) o que se debe
interpretar literalmente. Para más información, consulte Escapes de carácter.

Carácter
Descripción Modelo Coincidencias
de escape
Coincide con un carácter de campana, "\u0007" en
\a \a "Error!" +
\u0007. '\u0007'

\b
En una clase de caracteres, coincide con [\b]{3,} "\b\b\b\b" en
un retroceso, \u0008. "\b\b\b\b"
"item1\t",
\t Coincide con una tabulación, \u0009. (\w+)\t "item2\t" en
"item1\titem2\t"
Coincide con un retorno de carro, \u000D. "\r\nThese" en
\r (\r no es equivalente al carácter de nueva \r\n(\w+) "\r\nThese
línea, \n). are\ntwo lines."

\v
Coincide con una tabulación vertical, [\v]{2,} "\v\v\v" en
\u000B. "\v\v\v"

\f
Coincide con un avance de página, [\f]{2,} "\f\f\f" en
\u000C. "\f\f\f"
"\r\nThese" en
\n Coincide con una nueva línea, \u000A. \r\n(\w+) "\r\nThese
are\ntwo lines."
Carácter
Descripción Modelo Coincidencias
de escape
\e \e "\x001B" en
Coincide con un escape, \u001B.
"\x001B"
Usa la representación octal para
\w\040\w "a b", "c d" en "a
\ nnn especificar un carácter (nnn consta de dos bc d"
o tres dígitos).
Usa la representación hexadecimal para
\w\x20\w "a b", "c d" en "a
\x nn especificar un carácter (nn consta de bc d"
exactamente dos dígitos).
\c X Coincide con el carácter de control ASCII
"\x0003" en
especificado por X o x, donde X o x es la \cC
"\x0003" (Ctrl-C)
\c x letra del carácter de control.
Coincide con un carácter Unicode usando
la representación hexadecimal \w\u0020\w "a b", "c d" en "a
\u nnnn
(exactamente cuatro dígitos, según bc d"
representa nnnn).
Cuando va seguido de un carácter que no
se reconoce como un carácter de escape en
esta y otras tablas de este tema, coincide
con ese carácter. Por ejemplo, \* es igual
\
que \x2Ay \. es igual que \x2E. Esto \d+[\+- "2+2" y "3*9" en
permite que el motor de expresiones x\*]\d+ "(2+2) * 3*9"
regulares elimine la ambigüedad de los
elementos del lenguaje (como * o ?) y los
literales de carácter (representados por \*
o \?).

Clases de caracteres
Una clase de caracteres coincide con cualquiera de un juego de caracteres. Las clases de
caracteres incluyen los elementos del lenguaje enumerados en la tabla siguiente. Para más
información, consulte Clases de caracteres.

Clase de
Descripción Modelo Coincidencias
carácter
Coincide con cualquier carácter
"a" en "gray"
[ individual de grupo_caracteres. De
grupo_caracteres forma predeterminada, la [ae]
] "a", "e" en
coincidencia distingue entre
"lane"
mayúsculas y minúsculas.
[^ Negativo: coincide con cualquier
"r", "g", "n" en
grupo_caracteres carácter individual que no esté en [^aei] "reign"
] grupo_caracteres. De forma
Clase de
Descripción Modelo Coincidencias
carácter
predeterminada, los caracteres de
grupo_caracteres distinguen entre
mayúsculas y minúsculas.
Rango de caracteres: coincide con
[ primero - "A", "B" en
cualquier carácter individual en el [A-Z]
último ] "AB123"
intervalo de primero a último.
Carácter comodín: coincide con
cualquier carácter excepto con \n. "ave" en
"nave"
. Para coincidir con un carácter de a.e
punto literal (. o \u002E), debe "ate" en
anteponerle el carácter de escape "water"
(\.).
Coincide con cualquier carácter "C", "L" en
individual que pertenezca a la \p{Lu} "City Lights"
\p{ nombre } categoría general Unicode o al
bloque con nombre especificado \p{IsCyrillic} "Д", "Ж" en
por nombre. "ДЖem"
Coincide con cualquier carácter "i", "t", "y" en
individual que no pertenezca a la \P{Lu} "City"
\P{ nombre } categoría general Unicode o al
bloque con nombre especificado \P{IsCyrillic} "e", "m" en
por nombre. "ДЖem"
"I", "D", "A",
\w
Coincide con cualquier carácter de \w
"1", "3" en "ID
una palabra.
A1.3"

\W
Coincide con cualquier carácter que \W " ", "." en "ID
no pertenezca a una palabra. A1.3"

\s
Coincide con cualquier carácter que \w\s "D " en "ID
sea un espacio en blanco. A1.3"

\S
Coincide con cualquier carácter que \s\S " _" en "int
no sea un espacio en blanco. __ctr"

\d
Coincide con cualquier dígito \d "4" en "4 =
decimal. IV"
" ", "=", " ",
\D
Coincide con cualquier carácter que \D
"I", "V" en "4
no sea un dígito decimal.
= IV"

Delimitadores
Los delimitadores, o aserciones atómicas de ancho cero, hacen que una coincidencia tenga
éxito o no dependiendo de la posición actual en la cadena, pero no hacen que el motor
avance por la cadena ni consuma caracteres. Los metacaracteres enumerados en la tabla
siguiente son delimitadores. Para obtener más información, consulte Delimitadores.

Aserción Descripción Modelo Coincidencias


De forma predeterminada, la
coincidencia debe comenzar al
^ principio de la cadena; en el modo ^\d{3} "901" en "901-333-"
multilínea, debe comenzar al principio
de la línea.
De forma predeterminada, la
coincidencia se debe producir al final
$
de la cadena o antes de \n al final de -\d{3}$ "-333" en "-901-333"
la cadena; en el modo multilínea, se
debe producir antes del final de la
línea o antes de \n al final de la línea.
\A
La coincidencia se debe producir al \A\d{3} "901" en "901-333-"
principio de la cadena.
La coincidencia se debe producir al
\Z final de la cadena o antes de \n al -\d{3}\Z "-333" en "-901-333"
final de la cadena.
\z
La coincidencia se debe producir al -\d{3}\z "-333" en "-901-333"
final de la cadena.
La coincidencia se debe producir en el
\G \G\(\d\) "(1)", "(3)", "(5)" en
punto en el que finalizó la "(1)(3)(5)[7](9)"
coincidencia anterior.
La coincidencia se debe producir en
"them theme", "them
\b
un límite entre un carácter \w \b\w+\s\w+\b them" en "them theme
(alfanumérico) y un carácter \W (no them them"
alfanumérico).
La coincidencia no se debe producir "ends", "ender" en
\B \Bend\w*\b "end sends endure
en un límite \b. lender"

Construcciones de agrupamiento
Las construcciones de agrupamiento definen subexpresiones de una expresión regular y,
normalmente, capturan subcadenas de una cadena de entrada. Las construcciones de
agrupamiento incluyen los elementos del lenguaje enumerados en la tabla siguiente. Para
obtener más información, consulte Construcciones de agrupamiento.
Construcció
n de
Descripción Modelo Coincidencias
agrupamien
to
Captura la
subexpresión
coincidente y
(
le asigna un (\w)\1
subexpresión "ee" en "deep"
) número
ordinal
basado en
uno.
Captura la
(?< nombre subexpresión
>
coincidente (?<double>\w)\k<double> "ee" en "deep"
subexpresión
) en un grupo
con nombre.
Define una
definición de
grupo de
equilibrio.
Para obtener
más
información,
(?< nombre1 consulte la (((?'Open'\()[^\(\)]*)+((?'Clo
- nombre2 > sección se- "((1-3)*(3-1))" en
subexpresión "Definicione Open'\))[^\(\)]*)+)*(?(Open)(? "3+2^((1-3)*(3-1))"
) s de grupos !))$
de
equilibrio"
en
Construccion
es de
agrupamient
o.
"WriteLine" en
"Console.WriteLine(
(?: Define un )"
subexpresión grupo sin Write(?:Line)?
) captura. "Write" en
"Console.Write(valu
e)"
(?imnsx- Aplica o
imnsx: deshabilita A\d{2}(?i:\w+)\b "A12xl", "A12XL" en
subexpresión las opciones "A12xl A12XL a12xl"
) especificadas
Construcció
n de
Descripción Modelo Coincidencias
agrupamien
to
dentro de
subexpresión
. Para
obtener más
información,
consulte
Opciones de
expresiones
regulares.
Aserción de
(?= búsqueda "is", "ran" y "out" en
\w+(?=\.) "He is. The dog
subexpresión anticipada
ran. The sun is
) positiva de out."
ancho cero.
Aserción de
(?! búsqueda "sure", "used" en
subexpresión anticipada \b(?!un)\w+\b "unsure sure unity
) negativa de used"
ancho cero.
Aserción de
(?<= búsqueda "99", "50", "05" en
subexpresión tardía (?<=19)\d{2}\b "1851 1999 1950
) positiva de 1905 2003"
ancho cero.
Aserción de
(?<! búsqueda "51", "03" en "1851
subexpresión tardía (?<!19)\d{2}\b 1999 1950 1905
) negativa de 2003"
ancho cero.
Subexpresión
(?> "1ABB", "3ABB" y
sin retroceso [13579](?>A+B+)
subexpresión "5AB" en "1ABB 3ABBC
) (o
5AB 5AC"
"expansiva").

Cuantificadores
Un cuantificador especifica cuántas instancias del elemento anterior (que puede ser un
carácter, un grupo o una clase de caracteres) debe haber en la cadena de entrada para que se
encuentre una coincidencia. Los cuantificadores incluyen los elementos del lenguaje
enumerados en la tabla siguiente. Para obtener más información, consulte Cuantificadores.
Cuantificador Descripción Modelo Coincidencias
*
Coincide con el elemento \d*\.\d ".0", "19.9", "219.9"
anterior cero o más veces.
+
Coincide con el elemento "be+" "bee" en "been", "be" en
anterior una o más veces. "bent"

?
Coincide con el elemento "rai?n" "ran", "rain"
anterior cero veces o una vez.
",043" en "1,043.6",
Coincide con el elemento ",\d{3}"
{ n} ",876", ",543" y ",210" en
anterior exactamente n veces.
"9,876,543,210"
Coincide con el elemento "\d{2,}"
{ n ,} "166", "29", "1930"
anterior al menos n veces.
Coincide con el elemento "166", "17668"
{ n,m} anterior al menos n veces, pero "\d{3,5}"
no más de m veces. "19302" en "193024"
Coincide con el elemento
*?
anterior cero o más veces, pero \d*?\.\d
".0", "19.9", "219.9"
el menor número de veces que
sea posible.
Coincide con el elemento
+?
anterior una o más veces, pero "be+?" "be" en "been", "be" en
el menor número de veces que "bent"
sea posible.
Coincide con el elemento
??
anterior cero o una vez, pero el "rai??n"
"ran", "rain"
menor número de veces que
sea posible.
Coincide con el elemento ",043" en "1,043.6",
{ n }? precedente exactamente n ",\d{3}?" ",876", ",543" y ",210" en
veces. "9,876,543,210"
Coincide con el elemento
anterior al menos n veces, pero "\d{2,}?"
{ n ,}? "166", "29", "1930"
el menor número de veces
posible.
Coincide con el elemento
"166", "17668"
anterior entre n y m veces, pero "\d{3,5}?"
{ n , m }?
el menor número de veces
"193", "024" en "193024"
posible.

Construcciones de referencia inversa


Una referencia inversa permite identificar una subexpresión coincidente previamente más
adelante en la misma expresión regular. En la tabla siguiente se enumeran las
construcciones de referencia inversa admitidas en las expresiones regulares de .NET. Para
obtener más información, consulte Construcciones de referencia inversa.

Construcción de
referencias Descripción Modelo Coincidencias
inversas
Referencia inversa Coincide
(\w)\1 "ee" en
\ número con el valor de una "seek"
subexpresión numerada.
Referencia inversa con
\k< nombre > nombre Coincide con el valor (?<char>\w)\k<char> "ee" en
"seek"
de una expresión con nombre.

Construcciones de alternancia
Las estructuras de alternancia modifican una expresión regular para habilitar o no la
coincidencia. Estas construcciones incluyen los elementos del lenguaje enumerados en la
tabla siguiente. Para obtener más información, consulte Construcciones de alternancia.

Construccione
s de Descripción Modelo Coincidencias
alternancia
Coincide con
cualquier
"the", "this"
elemento
| th(e|is|at) en "this is
separado por el
the day."
carácter de barra
vertical (|).
Coincide con sí
si el patrón de
expresión regular
designado por
expresión
coincide; de lo "A10", "910" en
(?( expresión )
contrario, (?(A)A\d{2}\b|\b\d{3}\b) "A10 C103
sí | no ) 910"
coincide con la
parte opcional
no. expresión se
interpreta como
una aserción de
ancho cero.
Coincide con sí "Dogs.jpg ",
(?( nombre ) sí (?<quoted>")?(?(quoted).+?"|\S "\"Yiska
si nombre, un +\s) playing.jpg\"
| no )
grupo de captura " en "Dogs.jpg
Construccione
s de Descripción Modelo Coincidencias
alternancia
con nombre o \"Yiska
numerado, tiene playing.jpg\"
"
una coincidencia;
de lo contrario,
coincide con la
parte opcional
no.

Sustituciones
Las sustituciones son elementos del lenguaje de expresiones regulares que se admiten en
modelos de reemplazo. Para obtener más información, consulte Substituciones. Los
metacaracteres enumerados en la tabla siguiente son aserciones atómicas de ancho cero.

Modelo
Cadena
Caráct Descripci de Cadena de
Modelo de
er ón reempla resultado
entrada
zo
Sustituye
la
subcadena
$ que "one
\b(\w+)(\s)(\w+)\b $3$2$1 "two one"
número coincide two"
con el
grupo
número.
Sustituye
la
subcadena
${ que ${word2
\b(?<word1>\w+)(\s)(?<word2> } "one
nombre coincide "two one"
\w+)\b ${word1 two"
} con el }
grupo con
nombre
nombre.
Sustituye
"103
$$ un "$" \b(\d+)\s?USD $$$1 "$103"
USD"
literal.
Sustituye
"**$1.30**
$& una copia \$?\d*\.?\d+ **$&** "$1.30"
"
de toda la
Modelo
Cadena
Caráct Descripci de Cadena de
Modelo de
er ón reempla resultado
entrada
zo
coincidenc
ia.
Sustituye
todo el
texto de la
cadena de
$` entrada B+ $` "AABBCC" "AAAACC"
delante de
la
coincidenc
ia.
Sustituye
todo el
texto de la
cadena de
$' entrada B+ $' "AABBCC" "AACCCC"
detrás de
la
coincidenc
ia.
Sustituye
$+
el último B+(C+) $+
"AABBCCD
"AACCDD"
grupo D"
capturado.
Sustituye
$_
toda la B+ $_ "AABBCC"
"AAAABBCCC
cadena de C"
entrada.

Opciones de expresiones regulares


Puede especificar opciones que controlen cómo debe interpretar el motor de expresiones
regulares un patrón de expresión regular. Muchas de estas opciones pueden especificarse
alineadas (en el patrón de expresión regular) o como una o más constantes de
RegexOptions. Esta referencia rápida solo muestra las opciones alineadas. Para obtener más
información sobre las opciones alineadas y RegexOptions, consulte el artículo Opciones de
expresiones regulares.

Puede especificar una opción alineada de dos formas:


 Con la construcción miscelánea (?imnsx-imnsx), donde el signo menos (-) delante
de una opción o un conjunto de opciones desactiva dichas opciones. Por ejemplo,
(?i-mn) activa una coincidencia sin distinción entre mayúsculas y minúsculas (i),
desactiva el modo multilínea (m) y desactiva las capturas de grupo sin nombre (n).
La opción se aplica al patrón de expresión regular a partir del punto en el que esta se
define y es efectiva hasta el final del patrón o hasta el punto en el que otro
constructor invierte la opción.
 Con la Construcciones de agrupamiento(?imnsx-imnsx:subexpresión), que define
opciones solo para el grupo especificado.

El motor de expresiones regulares de .NET admite las siguientes opciones insertadas:

Opción Descripción Modelo Coincidencias


"aardvark",
Usa la coincidencia sin "aaaAuto" en
i distinción entre mayúsculas y \b(?i)a(?-i)a\w+\b "aardvark AAAuto
minúsculas. aaaAuto Adam
breakfast"
Usa el modo multilínea. ^ y $
Para obtener un ejemplo,
coinciden con el principio y
m
consulte la sección "Modo
el final de una línea, en lugar
multilínea" en Opciones de
del principio y el final de una
expresiones regulares.
cadena.
Para obtener un ejemplo,
consulte la sección "Solo
n
No se capturan grupos sin
capturas explícitas" en
nombre.
Opciones de expresiones
regulares.
Para obtener un ejemplo,
consulte la sección "Modo
s
Usa el modo de una sola
de una sola línea" en
línea.
Opciones de expresiones
regulares.
Se omite el espacio en blanco "1 aardvark", "2
x sin escape en el patrón de \b(?x) \d+ \s \w+ cats" en "1 aardvark
2 cats IV
expresión regular. centurions"

Construcciones misceláneas
Las estructuras misceláneas modifican un modelo de expresión regular o proporcionan
información sobre él. En la tabla siguiente se enumeran las construcciones misceláneas
admitidas por .NET. Para obtener más información, consulte Construcciones misceláneas.
Construcción Definición Ejemplo
Establece o deshabilita opciones como la no
\bA(?i)b\w+\b coincide
(?imnsx- distinción entre mayúsculas y minúsculas en
imnsx) medio de un patrón. Para más información, con "ABA", "Able" en
"ABA Able Act"
consulte Opciones de expresiones regulares.
(?# comentario Comentario alineado El comentario termina \bA(?#Matches words
) en el primer paréntesis de cierre. starting with A)\w+\b
Comentario en modo X El comentario
# [hasta el final
comienza en un carácter # sin escape y
de la línea]
continúa hasta el final de la línea.

S-ar putea să vă placă și