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