Chapter 16. Expresións regulares
Prev |  | Next

# Chapter 16. Expresións regulares

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.

### Note

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.

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

Table 16.2. 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

Table 16.3. 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

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

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

Table 16.6. 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]

Table 16.7. 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

Table 16.8. 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

### Note

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

Table 16.9. 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

### Note

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

Table 16.10. 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

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

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.

Figure 16.1. 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:

Table 16.11. 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.

Prev |  | Next
Chapter 15. Buscas | Home | Chapter 17. Dicionarios