¡Prueba tus Expresiones Regulares!  -  Ejemplos  -  Documentacion

Cadena de caracteres a filtrar con la expresión regular (string)

Regex: secuencia de caracteres que forman un patrón para la búsqueda cadenas de caracteres

Probar expresión regular
Resultado 

 
 

 

Secuencia de caracteres formando un patrón de búsqueda para realizar sustituciones

Reemplazar

 
Resultado 

Ejemplos de Expresiones regulares

  • [abc123] Representa uno de los caracteres situados entre los paréntesis.
  • [a-e] Representa cualquiera de los caracteres que se encuentran entre el rango de: a y e, incluyendo tanto el primer carácter como el úlltimo.
  • [a-eh-x] Del mismo modo que el anterior, representa cualquier carácter situado entre el rango de: a-e y h-x.
  • [^a-s] Representa cualquier carácter que no se encuentre entre el rango de: a y s.

 

Validar un password:

Acepto un rango "-" de caracteres de la "a" a la "z" en mayúsculas "A-Z" y minúsculas "a-z" y con sus acentos. También incluye rango de digitos del "0-9", y caracteres especiales "!@#\$%\^&\*\?_~\/". Los caracteres especiales siempre escapados por "\".

^[a-zA-ZÁáÀàÉéÈèÍíÌìÓóÒòÚúÙùÑñüÜ0-9!@#\$%\^&\*\?_~\/]{4,20}$

 

Validar un email:

Acepto un rango de caracteres de "A-Z" en mayúsculas y minúsculas, rango de digitos del "0-9, y caracteres permitidos en las direcciones de correo. Todo esto en un mínimo de 2 y no especifico el máximo "{2,}". Seguido por un "@", y seguido por el mismo patron de concordancia, para el nombre del dominio. Todo esto seguido por un "."(punto). Terminado por rango de caracteres de "A-Z" en mayúsculas y minúsculas, mínimo de 2 y máximo 4 "{2,4}"

^[a-zA-Z0-9_\-\.~]{2,}@[a-zA-Z0-9_\-\.~]{2,}\.[a-zA-Z]{2,4}$

 

Validar un teléfono fijo (de españa):

Empieza por 9 y continua con rango de digitos del "0-9" en una cantidad exacta de {8}.

^9[0-9]{8}$

 

Validar un teléfono móvil (de españa):

Igual que el anterior, pero comienza por un 6

^6[0-9]{8}$

 

Validar un DNI (de españa):

Empieza con rango de digitos del "0-9" en una cantidad exacta de {8}, y continua con una letra en rango de A-Z.

^[0-9]{8}[A-Z]$

 

Un poco de teoría: Expresiones Regulares (documentación)

Puntos de anclaje
  • ^ Define el comienzo de la cadena de expresión regular. Coincidencia al principio de la línea.
  • $ Define el final de la cadena de expresión regular, en cadenas multilínea, encontrará la última ocurrencia. Coincidencia al final de la línea.

 

Carácteres
  • [] Se utiliza para definir una clase "carácter".Se puede utilizar para que concuerde listados, o rangos.
  • - Rango de caracteres, cuando se utilizan dentro de una clase de caracteres. Para los rangos, utilizaremos el carácter - como separador de definición, lo utilizaremos de la siguiente forma: [A-Z] concuerda cualquier letra mayúscula. Otros ejemplos válidos son: [0-9] [aeiou0-9]
  • ^ Se utiliza en conjunto con los corchetes [ ^ ] para definir una NEGACIÓN, es decir, concuerda cualquier carácter EXCEPTO los incluidos en el listado. [^a-f] encontrará cualquiera excepto a,b,c,d o f. Negación de la clase de caracteres.
  • Si queremos utilizar una concordancia más genérica, podemos utilizar las variables \d para dígitos, \w para espacios en blanco y \s para carácteres alfanuméricos. Las mismas variables en MAYÚSCULAS (\D) se utilizan para la negación, éstas deben ser utilizadas fuera de los corchetes [].
  • . (Punto) Coincidencia con cualquier carácter exceptuando el carácter de nueva línea \r y \n
  • *Busca cero o más de los caracteres que preceden a "*". Por ejemplo, "Ab*c" encuentra "Ac", "Abc", "Abbc", "Abbbc", y así sucesivamente.
  • .* Esta comvinación significa "lo que sea, una o más veces" (pero cuidado con esto que entra todo).
  • | Se utiliza para dar alternativas (o una concordancia o la otra), concuerda con una de las opciones separadas por este carácter. Puede usarlo como: abc|def|hij, en tal caso encontrara abc o def o hij. También puede usarlo como: abc(def|xyz) en este caso encontrara abcdef o abcxyz.

 

Caracteres no alfabéticos ni numéricos
Algunos de los caracteres "especiales" no numéricos ni alfabéticos tienen un significado de por si, como por ejemplo [ ] { } ( ) * . ^ $ etc. No podemos ponerlos tal cual si forman parte de nuestro formato, debemos "escaparlos" poniendo \ delante.

 

Agrupación
  • () Podemos utilizar estos carácteres para agrupar una combinación de los explicados anteriormente. Se utilizará con tres funciones básicas, la primera, organización visual de la expresión, también la utilizaremos para aplicar carácteres de cuantificación a un grupo de expresiones (Por ejemplo ABC([\w]{2,5}\.(html|xml))? ), también una función muy útil, es la de agrupar el resultado de una concordancia para poder utilizarla después como referencia.
  • $n donde n es un número del 1 al 9, se utiliza para referenciar a una agrupación previa realizara con (). El ejemplo anterior devuelve dos referencias, $1 y $2, la primera devuelve toda la parte de ([\w]{2,5}\.(html|xml)) y la segunda, únicamente (html|xml)
  • ? Se utiliza para anular una referencia. Si lo utilizamos justo después de abrir el paréntesis ( anulara la "back reference", en ese caso si cambiamos la expresión anterior por: ABC([\w]{2,5}\.(?:html|xml))? veremos que sólo devuelve la referencia $1.

 

Cuantificadores
  • ? Coincidencia con el carácter, clase o subpatrón O ó 1 veces.
  • * Coincidencia con el carácter, clase o subpatrón O o ninguna vez.
  • *? Repite el elemento anterior cero o más veces. Al contrario que el anterior, devolverá la concordancia mínima. ".*?" encuentra "def" en abc "def" "ghi" jkl
  • + Coincidencia con el carácter, clase o subpatrón más de una vez.
  • {n} Coincidencia con el carácter, clase o subpatrón n veces.
  • {n,m} Coincidencia con el carácter, clase o subpatrón como mínimo n veces y, como máximo m veces.

 

Abreviatura
  • \d Abreviatura para la notación [0-9].
  • \D Abreviatura para la notación [0-9] (cualquier carácter que no sea un dígito).
  • \s Abreviatura para cualquier carácter de espacio en blanco.
  • \S Abreviatura para cualquier notación que coincida con cualquier carácter que no sea un espacio en blanco.
  • \w Abreviatura para la coincidencia con cualquier carácter de palabra.
  • \W Abreviatura para la coincidencia con cualquier carácter que no sea una palabra.