Tabla de referencia rápida de sintaxis de expresiones regulares

Una expresión regular, también conocida como regex, es un patrón de texto utilizado para buscar, reemplazar y manipular texto. Esto incluye letras desde la a hasta la z y algunos metacaracteres especiales. Las expresiones regulares tienen un amplio rango de aplicaciones, comenzando por su promoción en Unix, y son ampliamente utilizadas en Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, Javascript, Ruby y Python, entre otros. Aprender expresiones regulares es, en realidad, aprender una forma de pensar lógicamente muy flexible, que permite controlar cadenas de texto de manera simple y rápida.
Carácter regex Descripción
\ Escapa el siguiente carácter, marcándolo como un carácter especial, literal, una referencia hacia atrás o un carácter escapado octal. Por ejemplo, “n" coincide con el carácter "n". "\n" coincide con un salto de línea. La secuencia "\\" coincide con "\" y "\(" coincide con "(".
^ Coincide con el inicio de una cadena de entrada. Si se establece la propiedad Multiline del objeto RegExp, ^ también coincide con la posición después de un salto de línea“\n" o“\r".
$ Coincide con el final de una cadena de entrada. Si se establece la propiedad Multiline del objeto RegExp, $ también coincide con la posición antes de un salto de línea“\n" o“\r".
* Coincide con la subexpresión anterior cero o más veces. Por ejemplo, zo* puede coincidir con“z" y "zoo". * es equivalente a {0,}.
+ Coincide con la subexpresión anterior una o más veces. Por ejemplo, “zo+" puede coincidir con "zo" y "zoo", pero no puede coincidir con "z". + es equivalente a {1,}.
? Coincide con la subexpresión anterior cero o una vez. Por ejemplo, “do(es)?" puede coincidir con "does" o "do" en "does". ? es equivalente a {0,1}.
{n} n es un entero no negativo. Coincide con exactamente n veces. Por ejemplo, “o{2}" no puede coincidir con "Bob" en "o", pero puede coincidir con dos o's en "food".
{n,} n es un entero no negativo. Coincide con al menos n veces. Por ejemplo, “o{2,}" no puede coincidir con "Bob" en "o", pero puede coincidir con todas las o's en "foooood". "o{1,}" es equivalente a "o+". "o{0,}" es equivalente a "o*".
{n,m} m y n son enteros no negativos, donde n<=m. Coincide con al menos n veces y como máximo m veces. Por ejemplo, “o{1,3}" coincidirá con las tres o's de "fooooood". "o{0,1}" es equivalente a "o?". Nota que no debe haber espacios entre la coma y los dos números.
? Cuando este carácter sigue inmediatamente a cualquier otro cuantificador (*, +, ?, {n}, {n,}, {n,m}), el modo de coincidencia es no codicioso. El modo no codicioso coincide con la menor cantidad posible de caracteres en la cadena, mientras que el modo codicioso por defecto coincide con la mayor cantidad posible de caracteres. Por ejemplo, para la cadena“oooo", "o+?" coincidirá con un solo "o", mientras que "o+" coincidirá con todos los "o".
. Coincide con cualquier carácter que no sea“\n". Para coincidir con cualquier carácter, incluidos los saltos de línea, use un patrón como "(.|\n)".
(patrón) Coincide con el patrón y obtiene esta coincidencia. Las coincidencias capturadas se pueden extraer del conjunto de Matches creado, usando el conjunto SubMatches en VBScript y las propiedades $0…$9 en JScript. Para coincidir con un carácter de paréntesis, use“\(" o "\)".
(?:patrón) Coincide con el patrón pero no captura el resultado, es decir, se trata de una coincidencia no capturada, no se almacena para usarla más adelante. Esto es útil al usar el carácter de elección“(|)" para combinar diferentes partes de un patrón. Por ejemplo, "industr(?:y|ies)" es una expresión más concisa que "industry|industries".
(?=patrón) El lookahead afirmativo coincide en el inicio de cualquier cadena que coincida con el patrón. Esta es una coincidencia no capturada, lo que significa que no es necesario capturarla para usarla más adelante. Por ejemplo, “Windows(?=95|98|NT|2000)" puede coincidir con "Windows" en "Windows2000", pero no puede coincidir con "Windows" en "Windows3.1". La validación no consume caracteres, lo que significa que después de una coincidencia, busca inmediatamente la siguiente coincidencia, en lugar de comenzar después de los caracteres que incluyen la validación.
(?!patrón) El lookahead negativo coincide en el inicio de cualquier cadena que no coincida con el patrón. Esta es una coincidencia no capturada, lo que significa que no es necesario capturarla para usarla más adelante. Por ejemplo “Windows(?!95|98|NT|2000)" puede coincidir con "Windows" en "Windows3.1", pero no puede coincidir con "Windows" en "Windows2000". La validación no consume caracteres, lo que significa que después de una coincidencia, se busca inmediatamente la siguiente coincidencia, en lugar de comenzar después de los caracteres que incluyen la validación.
(?<=patrón) Lookbehind afirmativo, similar al lookahead afirmativo, pero en dirección opuesta. Por ejemplo, “(?<=95|98|NT|2000)Windows" puede coincidir con "Windows" en "2000Windows", pero no puede coincidir con "Windows" en "3.1Windows".
(?<!patrón) Lookbehind negativo, similar al lookahead negativo pero en dirección opuesta. Por ejemplo“(?<!95|98|NT|2000)Windows" puede coincidir con "Windows" en "3.1Windows", pero no puede coincidir con "Windows" en "2000Windows".
x|y Coincide con x o y. Por ejemplo, “z|food" puede coincidir con "z" o "food". "(z|f)ood" coincide con "zood" o "food".
[xyz] Conjunto de caracteres. Coincide con cualquiera de los caracteres incluidos. Por ejemplo, “[abc]" puede coincidir con "a" en "plain".
[^xyz] Conjunto de caracteres negativos. Coincide con cualquier carácter que no esté incluido. Por ejemplo, “[^abc]" puede coincidir con "p" en "plain".
[a-z] Rango de caracteres. Coincide con cualquier carácter dentro del rango especificado. Por ejemplo, “[a-z]" puede coincidir con cualquier letra minúscula desde "a" hasta "z".
[^a-z] Rango de caracteres negativos. Coincide con cualquier carácter que no esté en el rango especificado. Por ejemplo, “[^a-z]" puede coincidir con cualquier carácter que no esté entre "a" y "z".
\b Coincide con un límite de palabra, es decir, la posición entre una palabra y un espacio. Por ejemplo, “er\b" puede coincidir con "er" en "never", pero no con "er" en "verb".
\B Coincide con un no límite de palabra. “er\B" coincide con "er" en "verb", pero no en "never".
\cx Coincide con el carácter de control indicado por x. Por ejemplo, \cM coincide con un Control-M o un salto de línea. El valor de x debe ser una letra de A-Z o a-z. De lo contrario, c se considera un carácter literal“c".
\d Coincide con un carácter numérico. Equivalente a [0-9].
\D Coincide con un carácter no numérico. Equivalente a [^0-9].
\f Coincide con un carácter de salto de página. Equivalente a \x0c y \cL.
\n Coincide con un carácter de salto de línea. Equivalente a \x0a y \cJ.
\r Coincide con un carácter de retorno de carro. Equivalente a \x0d y \cM.
\s Coincide con cualquier carácter de espacio en blanco, incluyendo espacios, tabulaciones, saltos de página, etc. Equivalente a [ \f\n\r\t\v].
\S Coincide con cualquier carácter que no sea un espacio en blanco. Equivalente a [^ \f\n\r\t\v].
\t Coincide con un carácter de tabulación. Equivalente a \x09 y \cI.
\v Coincide con un carácter de tabulación vertical. Equivalente a \x0b y \cK.
\w Coincide con cualquier carácter de palabra, incluyendo guiones bajos. Equivalente a“[A-Za-z0-9_]".
\W Coincide con cualquier carácter que no sea de palabra. Equivalente a“[^A-Za-z0-9_]".
\xn Coincide con n, donde n es un valor hexadecimal escapado. El valor hexadecimal escapado debe ser de exactamente dos dígitos. Por ejemplo, “\x41" coincide con "A". "\x041" es equivalente a "\x04&1". Puede usarse codificación ASCII en expresiones regulares.
\num Coincide con num, donde num es un entero positivo. Referencia a las coincidencias capturadas. Por ejemplo, “(.)\1" coincide con dos caracteres idénticos consecutivos.
\n Identifica un valor escapado octal o una referencia hacia atrás. Si \n ha habido al menos n coincidencias capturadas, n es una referencia hacia atrás. De lo contrario, si n es un dígito octal (0-7), n es un valor escapado octal.
\nm Identifica un valor escapado octal o una referencia hacia atrás. Si \nm ha habido al menos nm coincidencias capturadas, nm es una referencia hacia atrás. Si \nm ha habido al menos n, entonces n es una referencia hacia atrás que sigue el texto m. Si no se cumplen estos casos, si n y m son ambos dígitos octales (0-7), nm coincidirá con el valor escapado octal nm.
\nml Si n es un dígito octal (0-3) y m y l son dígitos octales (0-7), coincide con el valor escapado octal nml.
\un Coincide con n, donde n es un carácter Unicode representado por cuatro dígitos hexadecimales. Por ejemplo, \u00A9 coincide con el símbolo de copyright (©).
Expresiones regulares comunes
Nombre de usuario /^[a-z0-9_-]{3,16}$/
Contraseña /^[a-z0-9_-]{6,18}$/
Contraseña2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (compuesta por números/letras mayúsculas/letras minúsculas/símbolos, todas deben estar presentes, más de 8 caracteres)
Valor hexadecimal /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
Correo electrónico /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ o \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ o [a-zA-z]+://[^\s]*
Dirección IP /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ o ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
Etiquetas HTML /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ o <(.*)(.*)>.*<\/\1>|<(.*) \/>
Eliminar código\\comentarios (?<!http:|\S)//.*$
Coincidir caracteres de doble byte (incluidos caracteres chinos) [^\x00-\xff]
Caracteres chinos (caracteres) [\u4e00-\u9fa5]
Rango de caracteres chinos en codificación Unicode /^[\u2E80-\u9FFF]+$/
Caracteres chinos y signos de puntuación de ancho completo [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Fecha (año-mes-día) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Fecha (mes/día/año) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Hora (hora:minutos, formato de 24 horas) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Teléfono fijo en China (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Número de móvil en China 1\d{10}
Código postal en China [1-9]\d{5}
Número de identificación en China (15 o 18 dígitos) \d{15}(\d\d[0-9xX])?
Número entero no negativo (número positivo o cero) \d+
Número entero positivo [0-9]*[1-9][0-9]*
Número entero negativo -[0-9]*[1-9][0-9]*
Número entero -?\d+
Número decimal (-?\d+)(\.\d+)?
Líneas en blanco \n\s*\r o \n\n(editplus) o ^[\s\S ]*\n
Número QQ [1-9]\d{4,}
Palabras sin abc \b((?!abc)\w)+\b
Coincidencias con espacios en blanco al inicio y al final ^\s*|\s*$
Ediciones comunes
A continuación se presentan algunas sustituciones para caracteres chinos especiales (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

Referencia rápida de sintaxis de expresiones regulares - Técnicas comunes y sintaxis de regex

Las expresiones regulares son una herramienta poderosa para el procesamiento de texto, esta página le proporciona una tabla de referencia rápida de la sintaxis de regex para ayudarle a comprender rápidamente las sintaxis básicas de las expresiones regulares, sus modificadores, subexpresiones, modos codiciosos y no codiciosos, etc.

Sintaxis básica de expresiones regulares

Las expresiones regulares se utilizan para describir las reglas de patrones de cadenas de texto, las sintaxis básicas comunes incluyen:

Modificadores de expresiones regulares comunes

Los modificadores de expresiones regulares se utilizan para cambiar las reglas de coincidencia de regex, los modificadores comunes incluyen:

Modos codicioso y no codicioso

En expresiones regulares, los cuantificadores son codiciosos por defecto, lo que significa que intentan coincidir con la mayor cantidad de caracteres posible. El modo no codicioso se usa agregando un ? después del cuantificador, como se muestra a continuación:

Subexpresiones y grupos

Las subexpresiones en expresiones regulares se definen usando paréntesis (()), comúnmente utilizadas para extraer partes coincidentes. Los grupos se implementan mediante el símbolo "|". Por ejemplo:

Consulta rápida de expresiones regulares

A continuación se proporciona una consulta rápida de expresiones regulares comunes:

Función Expresión regular
Coincidir números \d
Coincidir no números \D
Coincidir letras [a-zA-Z]
Coincidir cualquier carácter .
Coincidir caracteres de espacio en blanco \s

Escenarios de aplicación de expresiones regulares

Las expresiones regulares se aplican ampliamente en las siguientes áreas:

Consejos para aprender expresiones regulares

¡Usa nuestra tabla de referencia rápida de sintaxis de expresiones regulares ahora, y haz que tu escritura de expresiones regulares sea más eficiente, mejorando tus capacidades de procesamiento de texto!

Su historial:
Seleccionar idioma