Sintaxis y ejemplos de expresión regular POSIX
Las expresiones regulares (a menudo se hace referencia a ellas simplemente como "regex") pueden ser mucho más complejas que las expresiones que utilizan los caracteres comodín descritos en la sección anterior. A diferencia de los comodines, las expresiones regulares coincidirán con secuencias de caracteres que contienen los patrones que especifican independientemente de dónde aparezca ese patrón en una palabra. Como se explica más adelante en esta sección, puede utilizar los símbolos de ancla '^' (comienzo de palabra) y '$' (fin de palabra) para restringir dónde coincidirá en una palabra una expresión regular o para restringir esa coincidencia a palabras completas especificando los dos símbolos de ancla.
Las expresiones regulares asignan un significado especial a varios caracteres, a los que se suele hacer referencia como metacaracteres:
- Punto (.): coincide con cualquier carácter ASCII de anchura única
en una expresión, con la excepción de los caracteres de salto de línea. Para realizar la coincidencia de caracteres de varios bytes con
un único punto, debe utilizar las expresiones regulares compatibles con Perl, como se describe en Sintaxis de expresiones regulares compatibles con Perl.
Dado que el soporte de expresiones regulares está orientado a términos, el '.' no coincide además con el espacio ni el tabulador de forma predeterminada, que son caracteres de separación de palabra. Por ejemplo, la expresión regular 'f.rm' coincidirá con cualquier palabra que contenga secuencias de caracteres como 'farm', 'firm' y 'form', incluidas 'farmer', 'firmament' y 'conform', cualquier palabra que contenga una secuencia de caracteres que conste de una 'f', seguida de cualquier otro carácter, seguida de los caracteres 'rm'.
Consejo: El símbolo '.' es el equivalente del carácter '?' en una expresión con comodines. La secuencia '.*' es la equivalente del '*' en una expresión con comodines. - Asterisco o estrella (*): coincide con el símbolo anterior cero o más veces. Por ejemplo, la expresión regular 'to*' coincidiría con las palabras que contienen la letra 't' y series como 'it', 'to' y 'too', porque el símbolo anterior es el carácter único 'o', que puede aparecer cero veces en una expresión de coincidencia. La expresión regular 'f[aio]*t' coincidiría con las palabras 'fat', 'fit', 'fait', 'fiat' y 'foot' porque el símbolo precedente es la clase de carácter que consta de cualquiera de las letras 'a', 'i' u 'o'.
- Signo más (+): coincide con el símbolo precedente una o más veces. A diferencia del ejemplo dado en la viñeta anterior, la expresión regular 'to+' solo coincidiría con las palabras que contienen las secuencias de caracteres 'to' y 'too', porque el símbolo precedente es el carácter único 'o', que debe aparecer como mínimo una vez en una expresión de coincidencia. La expresión regular 'f[aio]+t' coincidiría con las palabras que contienen las secuencias de caracteres 'fit', 'fat', 'fait', 'fiat' y 'foot' porque el símbolo precedente es la clase de carácter que constan de cualquiera de las letras 'a', 'i' u 'o', y al menos un carácter de ese conjunto de caracteres debe estar presente para coincidir con la expresión regular.
- Signo de interrogación (?): identifica el carácter precedente como opcional. Por ejemplo, la expresión regular 'too?' coincidiría con las palabras que contienen las secuencias de caracteres 'to' y 'too'.
- Barra vertical o conducto (|): separa los símbolos, uno de los cuales debe ser coincidente, similar a una sentencia OR lógica. Por ejemplo, la expresión regular 'fa|i|ot' coincide con las palabras que contienen las secuencias de caracteres 'fa', 'i', 'fat' o 'fit' porque se puede ver como cualquiera de las secuencias'fa' o 'i' u 'ot', o la secuencia 'f y ("a" o "i" u "o") y t'. Cualquier parte de una expresión regular que utiliza el símbolo '|' se suele encerrar entre paréntesis para desambiguar los símbolos a los que se aplica el '|'. (Consulte la viñeta siguiente para obtener un ejemplo).
- Abrir y cerrar paréntesis o paréntesis ('(' y ')'): grupos de varios símbolos juntos para desambiguar o simplificar las referencias a ellos. Por ejemplo, la expresión regular 'f(a|i|o)t' coincide con las palabras que contienen las secuencias de caracteres 'fat' o 'fit' pero no la palabra 'fa', porque las secuencias coincidentes deben constar ahora de tres caracteres donde el carácter central se ha restringido a ser una de las letras "a" o "i" u "o".
- Abrir corchete ([) y cerrar corchete (]): encierra caracteres específicos o un rango de caracteres que van a coincidir. Los caracteres encerrados dentro de los corchetes se conocen como una clase de carácter. Por ejemplo, la expresión regular 'f[io]rm' coincidirá con palabras que contengan las secuencias de caracteres 'firm' y 'form', pero no coincidirá con cualquier otra palabra que contenga otras secuencias que comiencen por 'f' y terminen por 'rm'. Una clase de carácter solo coincide con un carácter único a no ser que esté seguido de otro carácter que tenga un significado especial en una expresión regular.
- Signo de circunflejo (^): el signo de circunflejo tiene dos significados distintos en una expresión regular,
en función de dónde aparece:
- Como el primer carácter de una clase de carácter, un signo de circunflejo niega los caracteres de esa clase de carácter. Por ejemplo, la expresión regular 'f[^io]rm' coincidirá con cualquier palabra que contenga una secuencia de caracteres que comienzan por 'f' y terminan por 'rm', excepto donde 'i' u 'o' sea el segundo carácter. Por lo tanto, coincidirá con las palabras que contienen la secuencia de caracteres 'farm', pero no las palabras que contienen las secuencias 'firm' o 'form'.
- Como el primer carácter de una expresión regular, un signo de circunflejo identifica el principio de un término. En este contexto, se suele hacer referencia al signo de circunflejo como un carácter de ancla.
- Signo de dólar ($): como el último carácter de una expresión regular, un signo de dólar identifica
el final de un término. En este contexto, se suele hacer referencia al signo de dólar como un
carácter de ancla. Nota: Los caracteres de ancla son muy importantes si desea restringir las coincidencias de expresión regular a palabras completas. Por ejemplo, la expresión regular 'f[aio]rm' coincidirá con las palabras que contienen cualquiera de las series 'farm', 'firm' y 'form', incluidas las palabras como 'farmer', 'infirm', 'former' y 'conform', mientras que la expresión regular '^f[aio]rm' solo coincidirá con las palabras 'farmer' y 'former' de estos ejemplos y la expresión regular '^f[air]rm$' solo coincidirá con las palabras 'farm', 'firm' y 'form'.
- Barra inclinada invertida (\): se utiliza para invocar el carácter real para un metacarácter de una expresión regular. Por ejemplo, la expresión regular 'Comin?' coincidirá con las palabras 'Coming', 'Comint' y la pregunta 'Comin?'. La expresión regular 'Comin\?' solo coincidirá con la pregunta 'Comin?'.
Tenga en cuenta que al configurar la lista blanca de referenciadores HTTP de opción global, utilice solo la sintaxis de expresión regular descrita en la lista anterior. Sin embargo, la sintaxis de expresión regular admite también un número de secuencias de caracteres especiales para la coincidencia con caracteres no imprimibles, clases de caracteres especiales como dígitos y caracteres alfabéticos, etc. La descripción de la sintaxis completa de una expresión regular está fuera del ámbito de la documentación de Watson Explorer Engine. Para obtener una descripción completa de las expresiones regulares, consulte el sitio Regular Expressions Information.