Capítulo 16. Expresiones regulares
Anterior |  | Siguiente

# Capítulo 16. Expresiones regulares

Las expresiones regulares (o regex para abreviar) utilizadas en las búsquedas y reglas de segmentación son compatibles con Java. Si necesitas información más específica, consulta la Documentación Regex de Java. Ve las referencias adicionales y los siguientes ejemplos.

### Nota

Este capítulo está destinado a usuarios avanzados, que tienen que definir sus propias variantes de las reglas de segmentación o idear más complejas y potentes búsquedas de elementos clave.

Tabla 16.1. Regex - Indicadores

La construcción | ... coincide con el siguiente
--- | ---
(?i) | Habilita la coincidencia de mayúsculas y minúsculas (de manera predeterminada, el patrón distingue entre mayúsculas y minúsculas).

Tabla 16.2. Regex - Carácter

La construcción | ... coincide con el siguiente
--- | ---
x | El carácter x, excepto los siguientes...
\uhhhh | El carácter con valor hexadecimal 0xhhhh
\t | El carácter de tabulador ('\u0009')
\n | El carácter de nueva línea (salto de línea) ('\u000A')
\r | El carácter de retorno de carro ('\u000D')
\f | El carácter de alimentación de hoja ('\u000C')
\a | El carácter de alerta (campana) ('\u0007')
\e | El carácter de escape ('\u001B')
\cx | El carácter de control correspondiente a x
\0n | El carácter octal con valor 0n (0 <= n <= 7)
\0nn | El carácter octal con valor 0nn (0 <= n <= 7)
\0mnn | El carácter octal con valor de 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh | El carácter hexadecimal con valor 0xhh

Tabla 16.3. Regex - Citado

La construcción | ... coincide con el siguiente
--- | ---
\ | Nada, pero cita el siguiente carácter. Esto es necesario si quieres ingresar cualquiera de los caracteres meta !$()*+.<>?[\]^{} para que coincidan con ellos mismos.
\\ | Por ejemplo, este es el carácter de barra invertida
\Q | Nada, sino que cita todos los caracteres hasta \E
\E | Nada, pero termina el citando iniciado por \Q

Tabla 16.4. Regex - Clases para bloques Unicode y categorías

La construcción | ... coincide con el siguiente
--- | ---
\p{InGreek} | Un carácter en el bloque griego (simple bloque)
\p{Lu} | Una letra mayúscula (simple categoría)
\p{Sc} | Un símbolo de moneda
\P{InGreek} | Cualquier carácter excepto uno en el bloque Griego (negación)
[\p{L}&&[^\p{Lu}]] | Cualquier letra excepto una letra en mayúscula (sustracción)

Tabla 16.5. Regex - Clases de caracteres

La construcción | ... coincide con el siguiente
--- | ---
[abc] | a, b o c (clase simple)
[^abc] | Cualquier carácter excepto a, b o c (negación)
[a-zA-Z] | desde la a hasta la z o desde la A hasta la Z, ambas inclusive (rango)

Tabla 16.6. Regex - Clases predefinidas de caracteres

La construcción | ... coincide con el siguiente
--- | ---
. | Cualquier carácter (excepto los terminadores de línea)
\d | Un dígito: [0-9]
\D | Un no dígito: [^0-9]
\s | Un espacio en blanco: [ \t\n\x0B\f\r]
\S | Un carácter distinto al espacio en blanco: [^\s]
\w | Un carácter constituyente de palabra: [a-zA-Z_0-9]
\W | Un carácter no constituyente de palabra: [^\w]

Tabla 16.7. Regex - Límites de coincidencia

La construcción | ... coincide con el siguiente
--- | ---
^ | Al comienzo de una línea
$ | Al final de una línea
\b | En los límites de una palabra
\B | En los límites de un carácter no constituyente de palabra

Tabla 16.8. Regex - Cuantificadores codiciosos

La construcción | ... coincide con el siguiente
--- | ---
X? | X, una vez o ninguna en absoluto
X* | X, cero o más veces
X+ | X, una o más veces

### Nota

cuantificadores codiciosos coinciden tanto como les sea posible. Por ejemplo, a+? coincidirá con aaa en aaabbb

Tabla 16.9. Regex - Cuantificadores reacios (tímidos)

La construcción | ... coincide con el siguiente
--- | ---
X?? | X, una vez o ninguna en absoluto
X*? | X, cero o más veces
X+? | X, una o más veces

### Nota

los cuantificadores tímidos coincide tan poco como les sea posible. Por ejemplo, a+? coincidirá con la primera a en aaabbb

Tabla 16.10. Regex - Operadores lógicos

La construcción | ... coincide con el siguiente
--- | ---
XY | X seguida por Y
X|Y | O bien X o bien Y
(XY) | XY como un solo grupo

## 1. Herramienta Regex y ejemplos de uso

Una serie de herramientas interactivas disponibles para desarrollar y probar expresiones regulares. Por lo general, siguen el mismo patrón (por ejemplo desde el Probador de expresiones regulares ve más abajo): la expresión regular (entrada superior), analiza el texto de búsqueda (cuadro de texto en el centro), produciendo los elementos, mostrados en el cuadro de texto resultado.

Figura 16.1. Probador Regex

Ve El entrenador Regex en versiones para Windows, Linux, FreeBSD de una herramienta independiente. Esta es similar al ejemplo anterior.

Puedes encontrar una buena colección de útiles casos de expresiones regulares en OmegaT sí (ves Opciones → Segmentación). La siguiente lista incluye expresiones que te pueden ser útiles cuando buscas a través de la memoria de traducción:

Tabla 16.11. Regex - Ejemplos de expresiones regulares en traducciones

Expresión regular | Busca lo siguiente:
--- | ---
(\b\w+\b)\s\1\b | palabras dobles
[\.,]\s*[\.,]+ | coma o un punto, seguido por espacios y otra coma o punto
\. \s+$ | espacios en blanco extra después del punto al final de la línea
\s+a\s+[aeiou] | Inglés: las palabras, que empiezan con vocales, generalmente deben estar precedidas por "an", no "a"
\s+an\s+[^aeiou] | Inglés: la misma comprobación que la anterior, pero sobre las consonantes ("a", no "an")
\s\s+ | más de un espacio
\.[A-Z] | Un punto, seguido por una letra mayúscula, posiblemente, un espacio omitido entre el punto y el comienzo de una nueva frase.

Anterior |  | Siguiente
Capítulo 15. Segmentación del texto fuente | Inicio | Capítulo 17. Búsquedas