# Expresiones regulares

Expresiones regulares Segmentación Búsqueda

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.

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.

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).

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

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

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)

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)

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]

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

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

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

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

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

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

## Herramienta Regex y ejemplos de uso

Expresiones regulares Herramientas
Expresiones regulares 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.

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:

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.