¡Prueba tus Expresiones Regulares!
Documentación
Al principio puede parecer un poco desalentador ver todos estos símbolos, y más si habeis intentado entender algún código que realiza una tarea muy concreta. Os recomiendo encarecidamente que utiliceis esta página para resolver dudas y realizar las pruebas para ir creando poco a poco la expresión que necesitais.
Para poner un caracter especial como tal, debe precederse de una \, si queremos poner [ deberemos escribirlo como \[ lo mismo se aplica para: \^$.|?*+()
Saltos de línea, y tabulación son: \r \n \t
Cerrar
-
[] Se utiliza para definir una clase “carácter”.Se puede utilizar para que concuerde listados, o rangos. Un listado podría ser [acx], en este caso encontraria una a,c o x
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 braquets [] 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
- Si queremos utilizar una concordancia más genérica, podemos utilizar las variables \d para dígitos, \w para carácteres alfanuméricos y \s para espacios en blanco. Las mismas variables en MAYÚSCULAS (\D) se utilizan para la negación, éstas deben ser utilizadas fuera de los braquets [].
- . (Punto) el punto se utiliza para concordar cualquier carácter excepto saltos de línea \r y \n
Cerrar
- ^ Define el comienzo de la cadena de expresión regular. ^. encontrará a en la cadena abcd
- $ Define el final de la cadena de expresión regular, en cadenas multilínea, encontrará la última ocurrencia. .$ encontrara g en la cadena defg
Cerrar
- \b Encuentra la posición entre un “carácter de palabra” (cualquier concordancia con \w) y un carácter no palabra (cualquiera encontrado por [^\W] o \W) así como el inicio y final de cadena si el primer o último carácter son “carácteres de palabra”. .\b encuentra o en klmno
- \B Encuentra la posición entre dos carácteres de palabra. \B.\B encuentra B en ABC
Cerrar
- | Se utiliza para dar alternativas, 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
Cerrar
- ? Marca la búsqueda del elemento anterior como opcional. ABC? encontrará AB o ABC
- ?? Marca la búsqueda del elemento anterior como opcional, PERO intentará evitar incluir el elemento opcional. [POCO USADA] ABC?? encontrará AB o ABC
- * Repite el elemento anterior cero o más veces. Se intentará encontrar el mayor número de elementos posible antes de intentar permutaciones con menos concordancias hasta el punto de que el elemento no coincida en absoluto. “.*” encuentra “def” “ghi” en abc “def” “ghi” jkl
- *? 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
- + Repite el elemento anterior una o más veces. Se intentará encontrar el mayor número de elementos posible antes de intentar permutaciones con menos concordancias hasta el punto de que el elemento no coincida en absoluto. “.+” encuentra “def” “ghi” en abc “def” “ghi” jkl
- +? Repite el elemento anterior una o más veces. Al contrario que el anterior, devolverá la concordancia mínima. “.+?” encuentra “def” en abc “def” “ghi” jkl
- {n} Repite el elemento anterior exactamente n veces (N debe ser un entero mayor que 1) a{3} encuentra aaa
- {n,m} Repite el elemento anterior entre n y m veces. La repetición de m se intenta antes que la reducción a n. a{2,4} encontrará aa, aaa y aaaa
- {n,m}? Repite el elemento anterior entre n y m veces. La repetición de n se intenta antes del incremento a m. a{2,4} encontrará aaaa, aaa y aa
- {n,} Repite el elemento anterior como mínimo n veces, pero intentará encontrarlo el mayor número de veces posible. a{2,} encontrará aaaa en aaaa
- {n,}? Repite el elemento anterior como mínimo n veces, esta variación intentará mantener la concordancia al mínimo especificado. a{2,}? encontrará aa en aaaa
Cerrar
- () 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.
Cerrar
Fuente: http://www.regular-expressions.info/