Referencia rápida del lenguaje de expresiones regulares

Las entidades de expresiones regulares utilizan un enfoque determinista para hacer coincidir valores a través de expresiones de expresiones regulares. 

Una expresión regular es un patrón que el motor de expresiones regulares intenta hacer coincidir en el texto de entrada. Un patrón consta de uno o más caracteres, operadores o construcciones. Las expresiones regulares pueden contener tanto caracteres especiales como ordinarios. La mayoría de los caracteres ordinarios, como 'A', 'a' o '0', son las expresiones regulares más simples; simplemente se emparejan a sí mismos. Puede concatenar caracteres ordinarios, por lo que último coincide con la cadena 'último'. 

Algunos caracteres, como '|' o '(', son especiales. Los caracteres especiales representan clases de caracteres ordinarios o afectan la forma en que se interpretan las expresiones regulares que los rodean.

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

Nota: Actualmente, no se admiten la captura de grupos ni las funciones adicionales que dependen de la captura de grupos.

Funciones de expresiones regulares admitidas

Las siguientes secciones describen las funciones de expresiones regulares admitidas.

El carácter de barra invertida (\) en una expresión regular indica que el carácter que le sigue es un carácter especial (como se muestra en la siguiente tabla) o debe interpretarse literalmente.

Personaje escapado Descripción Patrón Partidos
\a Coincide con un carácter de campana, \ u0007 \a "\ U0007" en "¡Error!" + '\ u0007'
\B En una clase de personaje, coincide con un retroceso, \ u0008 [\ b] {3,} "\ B \ b \ b \ b" en "\ b \ b \ b \ b"
\ t

Coincide con una pestaña, \ u0009.

(\ w +) \ t "Item1 \ t", "item2 \ t" en "item1 \ titem2 \ t"

\ r

Coincide con un retorno de carro, \ u000D. (\ r no es equivalente al carácter de nueva línea, \ n.)

\ r \ n (\ w +)

"\ R \ nEstas" en "\ r \ nEstas son \ ndos líneas".

\ v

Coincide con una pestaña vertical, \ u000B.

[\ v] {2,}

"\ V \ v \ v" en "\ v \ v \ v"

\F

Coincide con un avance de formulario, \ u000C.

[\ f] {2,}

"\ F \ f \ f" en "\ f \ f \ f"

\norte

Coincide con una nueva línea, \ u000A.

\ r \ n (\ w +)

"\ R \ nEstas" en "\ r \ nEstas son \ ndos líneas".

\ nnn

Utiliza representación octal para especificar un carácter (nnn consta de dos o tres dígitos).

\ w \ 040 \ w

"Ab", "cd" en "a bc d"

\X nn

Utiliza representación hexadecimal para especificar un carácter (nn consta exactamente de dos dígitos).

\ w \ x20 \ w

"Ab", "cd" en "a bc d"

\ u nnnn

Coincide con un carácter Unicode mediante el uso de representación hexadecimal (exactamente cuatro dígitos, como se representa por nnnn).

\ w \ u0020 \ w

"Ab", "cd" en "a bc d"

\

Cuando va seguido de un carácter que no se reconoce como carácter de escape en esta y otras tablas de este tema, coincide con ese carácter. Por ejemplo, \ * es lo mismo que \ x2A y \. es lo mismo que \ x2E. Esto permite que el motor de expresiones regulares elimine la ambigüedad de los elementos del lenguaje (como * o?) Y los literales de caracteres (representados por \ * o \?).

\ d + [\ + - x \ *] \ d +

"2 + 2" y "3 * 9" en "(2 + 2) * 3 * 9"

Una clase de carácter coincide con cualquiera de un conjunto de caracteres. Las clases de caracteres incluyen los elementos del lenguaje enumerados en la siguiente tabla.

Clase de personaje Descripción Patrón Partidos

[ character_group ]

Coincide con cualquier carácter individual en character_group

[ae]

"A" en "gris"

"A", "e" en "carril"

[^ character_group ]

Negación: Coincide con cualquier carácter individual que no esté en character_group. De forma predeterminada, los caracteres de character_group distinguen entre mayúsculas y minúsculas.

[^ aei]

"R", "g", "n" en "reinado"

[ primero - último ]

Rango de caracteres: Coincide con cualquier carácter individual en el rango de primero para último.

[ARIZONA]

"A", "B" en "AB123"

.

Comodín: Coincide con cualquier carácter individual excepto \ n.

ae

"Ave" en "nave"

"Comí" en "agua"

\ w

Coincide con cualquier carácter de palabra.

\ w

"I", "D", "A", "1", "3" en "ID A1.3"

\ W

Coincide con cualquier carácter que no sea una palabra.

\ W

"", "." en "ID A1.3"

\s

Coincide con cualquier carácter de espacio en blanco.

\ w \ s

"D" en "ID A1.3"

\S

Coincide con cualquier carácter que no sea un espacio en blanco.

\ s \ S

”_” En “int __ctr”

\D

Coincide con cualquier dígito decimal.

\D

"4" en "4 = IV"

\D

Coincide con cualquier carácter que no sea un dígito decimal.

\D

"", "=", "", "I", "V" en "4 = IV"

Los anclajes, o aserciones atómicas de ancho cero, hacen que una coincidencia tenga éxito o falle dependiendo de la posición actual en la cadena, pero no hacen que el motor avance a través de la cadena o consuma caracteres. Los metacaracteres enumerados en la siguiente tabla son anclajes. 

Afirmación Descripción Patrón Partidos

^

De forma predeterminada, la coincidencia debe comenzar al principio de la cadena; en modo multilínea, debe comenzar al principio de la línea.

^ \ d{3}

"901" en "901-333-"

$

Por defecto, la coincidencia debe ocurrir al final de la cadena o antes de \ n al final de la cadena; en modo multilínea, debe ocurrir antes del final de la línea o antes \ n al final de la línea.

-\D{3}PS

"-333" en "-901-333"

\A

La coincidencia debe ocurrir al comienzo de la cadena.

\Anuncio{3}

"901" en "901-333-"

\ Z

La coincidencia debe ocurrir al final de la cadena o antes de \ n al final de la cadena.

-\D{3}\ Z

"-333" en "-901-333"

\ z

La coincidencia debe ocurrir al final de la cadena.

-\D{3}\ z

"-333" en "-901-333"

\B

La coincidencia debe ocurrir en un límite entre un carácter \ w (alfanumérico) y un carácter \ W (no alfanumérico).

\ b \ w + \ s \ w + \ b

"Ellos tema", "ellos ellos" en "ellos tema ellos"

\B

La coincidencia no debe ocurrir en un límite \ b.

\ Doblar \ w * \ b

"Termina", "ender" en "el final envía durar el prestamista"

Las construcciones de agrupación delimitan subexpresiones de una expresión regular y normalmente capturan subcadenas de una cadena de entrada. Las construcciones de agrupación incluyen los elementos de lenguaje enumerados en la siguiente tabla. Solo se admiten los grupos que no capturan.

Agrupación de restricciones Descripción Patrón Partidos

(?: subexpresión )

Define un grupo que no captura.

(?: [0-9]{4}) | (?: [0-9] [0-9] [0-9] [0-9])

"1234" en "el número es 1234"

"1 2 3 4" "el número es 1 2 3 4"

(? = subexpresión )

Afirmación de anticipación positiva de ancho cero.

\ w + (? = \.)

"Es", "corrió" y "fuera" en "Él es. El perro corrio. Ha salido el sol ".

(?! subexpresión )

Afirmación de anticipación negativa de ancho cero.

\ b (?! un) \ w + \ b

"Seguro", "usado" en "no estoy seguro de que se haya usado la unidad"

(? <= subexpresión )

Aserción retrospectiva positiva de ancho cero.

(? <= 19) \ d{2}\B

"99", "50", "05" en "1851 1999 1950 1905 2003"

(?<! subexpresión )

Aserción de búsqueda retrospectiva negativa de ancho cero.

(?<!19)\d{2}\b<sajan index="1" />

"51", "03" en "1851 1999 1950 1905 2003"

Un cuantificador especifica cuántas instancias del elemento anterior (que puede ser un carácter, un grupo o una clase de carácter) deben estar presentes en la cadena de entrada para que se produzca una coincidencia. Los cuantificadores incluyen los elementos del lenguaje que se enumeran en la siguiente tabla. 

Cuantificador Descripción Patrón Partidos

*

Coincide con el elemento anterior cero o más veces.

\ d * \. \ d

".0", "19.9", "219.9"

+

Coincide con el elemento anterior una o más veces.

"Ser +"

"Abeja" en "estado", "ser" en "doblado"

?

Coincide con el elemento anterior cero o una vez.

"lluvia"

"Corrió", "lluvia"

{ norte }

Coincide exactamente con el elemento anterior norte veces.

",\D{3}"

", 043" en "1.043,6", ", 876", ", 543" y ", 210" en "9.876.543.210"

{ norte ,}

Coincide con el elemento anterior al menos norte veces.

"\ D {2,}"

"166", "29", "1930"

{ norte , metro }

Coincide con el elemento anterior al menos norte veces, pero no más de metro veces.

"\ D {3,5}"

"166", "17668"

"19302" en "193024"

*?+???

Igual que para *, + y ?, pero tan pocas veces como sea posible.  

<.*?>

los '*', '+', y '?' los calificadores son todos avaro; coinciden con la mayor cantidad de texto posible. A veces, este comportamiento no es deseado; sí hay <. *> se compara con '<a> B <c>', coincidirá con toda la cadena, y no solo '<a>'. Añadiendo ? después de que el clasificado hace que realice el partido en no codicioso o mínimo Moda; como pocos Se emparejarán los caracteres posibles. Usando el RE <. *?> coincidirá solo '<a>'.

{ norte }?

Coincide exactamente con el elemento anterior norte veces.

",\D{3}? "

", 043" en "1.043,6", ", 876", ", 543" y ", 210" en "9.876.543.210"

{ norte ,}?

Coincide con el elemento anterior al menos norte veces, pero el menor número de veces posible.

"\ D {2,}?"

"166", "29", "1930"

{ norte , metro }?

Coincide con el elemento anterior entre norte y metro veces, pero el menor número de veces posible.

"\ D {3,5}?"

"166", "17668"

"193", "024" en "193024"

Las construcciones de alternancia modifican una expresión regular para habilitar la coincidencia. Estas construcciones incluyen los elementos del lenguaje enumerados en la siguiente tabla. 

Cuantificador Descripción Patrón Partidos

|

Coincide con cualquier elemento separado por el carácter de barra vertical (|).

th (?: e | es | en)

"El", "este" en "este es el día".