# Expresións regulares

Expresións regulares Segmentación Busca

As expresións regulares (ou regex para acortar) empregadas nas buscas e regras de segmentación son as compatíbeis con Java. En caso de necesitar información máis específica, consulte a Documentación sobre Regex de Java. Vexa referencias adicionais e exemplos máis adiante.

Este capítulo está pensado para usuarios avanzados, que necesitar definir as súas propias variantes de regras de segmentación ou que necesitan facer buscas máis complexas e exhaustivas.

Regex - Bandeiras

A construción | ... coincide coa seguinte
--- | ---
(?i) | Permite coincidencias que non teñan en conta as maiúsculas e minúsculas (de xeito predeterminado, o padrón ten en conta as maiúsculas e minúsculas).

Regex - Carácter

A construción | ... coincide coa seguinte
--- | ---
x | O carácter x, excepto o seguinte...
\uhhhh | O carácter con valor hexadecimal 0xhhhh
\t | O carácter de tabulación ('\u0009')
\n | O carácter de nova liña ('\u000A')
\r | O carácter de retorno de carro ('\u000D')
\f | O carácter de alimentación de folla ('\u000C')
\a | O carácter alerta (campá) ('\u0007')
\e | O carácter de escape ('\u001B')
\cx | O carácter de control correspondente a x
\0n | O carácter con valor octal 0n (0 <=n <=7)
\0nn | O carácter con valor octal 0nn (0 <=n <=7)
\0mnn | O carácter con valor octal 0mnn (0 <=m <=3, 0 <= n <=7)
\xhh | O carácter con valor hexadecimal 0xhh

Regex - Citación

A construción | ... coincide coa seguinte
--- | ---
\ | Nada, mais cita o seguinte carácter. Isto é necesario se quere inserir calquera dos meta caracteres !$()*+.<>?[\]^{|} e que coincidan con eles mesmos.
\\ | Por exemplo, este é o carácter de barra invertida
\Q | Nada, mais cita a todos os caracteres ata \E
\E | Nada, mais termina citas iniciadas por \Q

Regex - Clases para bloques e categorías Unicode

A construción | ... coincide coa seguinte
--- | ---
\p{InGreek} | Un carácter no bloque Grego (bloque simple)
\p{Lu} | Unha letra maiúscula (categoría simple)
\p{Sc} | Un símbolo de divisa
\P{InGreek} | Calquera carácter excepto un do bloque grego (negación)
[\p{L}&&[^\p{Lu}]] | Calquera letra excepto unha letra en maiúscula (subtracción)

Regex - Clases de caracteres

A construción | ... coincide coa seguinte
--- | ---
[abc] | a, b ou c (clase simple)
[^abc] | Calquera carácter excepto a, b ou c (negación)
[a-zA-Z] | Desde o a ata o z ou A ata Z, inclusive (rango)

Regez - Clases predeterminadas de caracteres

A construción | ... coincide coa seguinte
--- | ---
. | Calquera carácter (excepto os finalizadores de liña)
\d | Un díxito: [0-9]
\D | Un non díxito: [^0-9]
\s | Un carácter de espazo en branco: [ \t\n\x0B\f\r]
\S | Un espazo de non espazo en branco: [^\s]
\w | Un carácter de palabra: [a-zA-Z_0-9]
\W | Un carácter de non palabra: [^\w]

Regex - Límite de coincidencias

A construción | ... coincide coa seguinte
--- | ---
^ | O comezo dunha liña
$ | O fin dunha liña
\b | En los límites de una palabra
\B | Nos límites dun carácter non constituínte de palabra

Regex - Cuantificadores cobizosos

A construción | ... coincide coa seguinte
--- | ---
X? | X, unha vez ou nunca
X* | X, cero ou máis veces
X+ | X, unha ou máis veces

os cuantificadores cobizosos coincidirán tanto coma sexa posíbel. Por exemplo, a+? debe coincidir con aaa en aaabbb

Regex - Cuantificadores tímidos (non cobizosos)

A construción | ... coincide coa seguinte
--- | ---
X?? | X, unha vez ou nunca
X*? | X, cero ou máis veces
X+? | X, unha ou máis veces

os cuantificadores non cobizosos coincidirán o mínimo posíbel. Por exemplo, a+? debe coincidir coa primeira a en aaabbb

Regex - operadores lóxicos

A construción | ... coincide coa seguinte
--- | ---
XY | X seguido de Y
X|Y | Tanto X como Y
(XY) | XY coma un grupo indivisíbel

## Ferramentas e exemplos de uso de expresións regulares

Expresións regulares Ferramentas
Expresións regulares Exemplos de uso

Hai dispoñíbeis un número de ferramentas interactivas para desenvolver e probar expresións regulares. Xeralmente seguen máis ou menos o mesmo padrón (vexa máis adiante un exemplo do Comprobador de expresión regular): a expresión regular (primeira entrada) analiza o texto de busca (caixa de texto do medio), dando consellos, se amosa no cadro de texto de resultados.

Comprobador de Regex

Vexa The Regex Coach para as versións Windows, Linux e FreeBSD dunha ferramenta independente. Esta é case idéntica ao exemplo anterior.

Pode atopar unha gran colección de casos de expresións regulares útiles no propio OmegaT (vexa Opcións > Segmentación). A seguinte lista inclúe expresións que pode atopar útiles cando busque na memoria de tradución:

Regex - Exemplos de expresións regulares en traducións

Expresión regular | Atopa o seguinte:
--- | ---
(\b\w+\b)\s\1\b | palabras duplicadas
[\.,]\s*[\.,]+ | coma ou punto seguido de espazo ou outra coma ou punto
\. \s+$ | espazos extra despois dun punto ao final de liña
\s+a\s+[aeiou] | Inglés: palabras que comecen por vogal, que xeralmente deberían ir precedidas de «an» e non «a»
\s+an\s+[^aeiou] | Inglés: o mesmo caso ca antes, mais coas consoantes («a» e non «an»)
\s{2,} | máis dun espazo
\.[A-Z] | Punto, seguido dunha letra en maiúscula (posibelmente falte un espazo entre o punto e o comezo da nova frase)
\bis\b | busca «is», e non «this» ou «isn't», etc.