La expresión regular (abreviada como regex o regex) es una secuencia de carácter que forma un patrón de búsqueda principalmente para usar en la coincidencia de patrones con Strings o coincidencia de cadena. La funcionalidad es similar a las operaciones de buscar y Reemplazar con más complejidad y especificidad o como un método para excluir contenido definido. Consulte la entrada de wikipedia para obtener una descripción detallada de regex y una tabla de carácter usados.
Para usar varias regex a la vez, insertar un carácter de tubería | entre ellas.
Regex se puede usar en los campos de filtrar, buscar y Reemplazar en el CAT Editor, en los campos de fuente y meta de la función de buscar contenido, para la función en configuración de importación de archivos y para personalizar reglas de segmentación. El convertidor y el CAT Desktop Editor usar Java regex, mientras que el CAT Web Editor y la búsqueda en TMS usar el motor Lucene regex.
Consejo
Los chatbots de IA pueden ser muy efectivos para generar y verificar regex.
Usar Herramientas como Regex101 para probar regex con diferentes entradas.
Importante
Phrase admite Java regex, pero rechazará expresiones regulares complejas para proteger el sistema de sobrecargas. Las expresiones regulares complejas son aquellas con cuantificadores (excepto posesivos) en grupos que contienen otros cuantificadores (excepto posesivos).
Ejemplos para convertir texto en etiquetas al importar archivos y usar expresiones regulares en el editor de escritorio para funciones de filtrar y Reemplazar:
|
Ejemplo |
Descripción |
|---|---|
|
<[^>]+> |
represents <html_tag> |
|
\{[^\}]+\} |
representa {variable}, |
|
\[[^\]]+\] |
representa [variable], |
|
\[\[.+?\]\] |
representa [[aa[11]bb]]. |
|
\$[^\$]+\$ |
represents $operator_Name1$. |
|
\d+ |
representa números. Además, [0-9]+ |
|
[A-Za-z0-9] |
representa cualquier carácter alfanumérico. |
|
.+\@.+\..+ |
correo electrónico nombre@dominio.com |
|
\d{4}[-]\d{2}[-]\d{2} |
la fecha 2018-08-01 |
|
\s$ |
un espacio en blanco al final del segmento |
|
^\s |
un espacio en blanco al principio del segmento |
|
\s\s |
un espacio en blanco doble |
|
^\d |
un dígito al principio del segmento |
|
\w+\s\s\w+ |
un espacio en blanco doble entre palabras |
|
\s\n |
un salto de línea precedido por cualquier carácter de espacio en blanco |
|
\S\n |
un salto de línea precedido por cualquier carácter que no sea de espacio en blanco |
|
<[^>]+>|\$[^=]+= |
convierte variables php y código html ($svariable['name'] =) |
|
^\s*\'[^:]+: |
convierte la clave de campo de javascript con espacios en blanco añadidos al principio de la línea ( 'clave' :) |
|
\{\{[^\}]+\}\}|\'[^\']+\' |
no traduce el contenido {{text here}} '{{text here}}' y lo convierte en etiquetas |
|
\{\{[^\}]+\}\} |
representa el texto entre corchetes {{}} |
|
\([^\)]+\) |
representa el texto entre paréntesis () |
|
\^[^\^]+\^ |
representa el texto entre marcas ^ |
|
\@[^\@]+\@ |
representa el texto entre marcas @ |
|
\^[^\^\?]+\? |
representa el texto entre marcas ^ y ? |
|
\'[^']+\' |
representa texto entre apóstrofos ' ' |
|
\"[^"]+\" |
representa texto entre comillas \"\" |
|
\%[^\%]+\% |
representa texto entre símbolos % |
|
\$\{[^}]*\} |
representa texto entre ${ y }, p. ej. ${variable} |
|
\$[a-zA-Z0-9\-_]+ |
representa una cadena que comienza con $, p. ej. $appName |
|
(?<=\: ").*(?=") |
representa texto dentro de comillas dobles después de dos puntos y un espacio, p. ej. |
|
(?<=\\: ').*(?=') |
representa texto dentro de comillas simples después de dos puntos y un espacio, p. ej. |
|
(?<=\=).*(?=) |
representa texto después de un signo igual y sin espacio, p. ej. clave=valor |
|
(.*)= |
representa texto antes de un signo igual |
|
=(.*) |
representa texto después de un signo igual |
|
\/\/\S* |
representa hipervínculos. Además, https:\\/\\/\\S* |
|
</?mrk[^>]*> |
representa etiquetas |
Nota
Dado que los archivos TXT en TMS se procesan línea por línea, ciertas expresiones regulares que funcionan en otros entornos pueden no funcionar como se espera.
Ejemplos de expresiones regulares al importar un texto específico:
-
## ErrorMessage ##1## The number must be higher than 0. ##Z##
Para importar texto entre ##1## y ##Z## ,usar regex:
(?<=##1## ).*(?= ##Z##) -
ErrorMessage (\"The number must be higher than 0.\")
Para importar texto entre (\" y \") , usar regex:
(?<=\\(\").*(?=\"\\)) -
'errorMessage' = 'The number must be higher than 0.'
Para importar texto después del signo = y entre ' y ' , usar regex:
(?<=\\= ').*(?=') -
errorMessage = \"esto debe ser traducido\"
Para importar texto después del signo = y entre 'y' usar regex:
(?<=\\= \").*(?=\") -
msgstr (\"The number must be higher than 0.\")
Para importar Strings msgstr en archivos PO monolingües usando un filtro TXT, usar regex:
(?<=msgstr \").*(?=\") -
# Note: This is a note
Para Excluir líneas que comienzan con # , usar regex:
(^[^#].*) -
values '126', 'DCeT', 'Text (en)'
Para importar solo texto entre comillas y con (en), como Text (en)' usar regex:
(?<=')[^']*\\(en\\)(?=')
Ejemplo de estructura JSON:
{
"list": {
"id": "1",
"value": "text 1 for translation."
},
"text": {
"id": "2",
"value": "text 2 for translation."
},
"menu": {
"id": "3",
"value": "text 3 for translation."
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLUE"
}, { "color": "green", "title": "GREEN" } ]}
-
para importar cada valor independientemente del nivel, usar:
(^|.*/)value -
para importar solo un valor de una lista, usar:
lista/value -
para importar un valor de una lista y/o menú, usar el operador | (O):
lista/value|menu/value -
para importar solo la primera instancia de un valor de un menú, usar:
menu\\[1\\]/value -
para importar el contenido de una matriz JSON que sigue a una clave determinada, usar:
(^|.*/)array\\[.*\\] -
para importar el contenido de una matriz específica de objetos, usar:
(^|.*/)arrays\\[.*\\].*
Ejemplo de archivo YAML:
title: A
text: translate A
categories:
title: B
text: translate B
categories:
title: C
text: translate C
categories:
content:
title: D
text: translate D
expresión regular para importar:
-
solo 'traducir A' :
texto -
solo 'traducir C':
categories\\[2\\]/texto -
solo 'traducir D':
categories\\[\\d+\\]/contenido[\\1\\]/texto -
todo el texto:
texto|categories\\[\\d+\\]/texto|categories\\[\\d+\\]/contenido[\\d+\\]/texto
Okapi, Java y Unicode se usan para las reglas de segmentación en archivos .SRX.
Usar expresiones regulares en archivos .SRX es complejo y se recomienda tener conocimientos básicos sobre el uso de expresiones regulares antes de intentar trabajar con ellos.
Las reglas de no ruptura (abreviaturas, etc.) y las reglas de ruptura (final de la oración con un punto, etc.) están en los archivos .SRX.
|
Ejemplo |
Descripción |
|---|---|
|
[\p{C}] |
Carácter de control invisible. |
|
[\p{Z}] |
Espacio en blanco |
|
[\p{Lu}] |
Una letra mayúscula que tiene una variante minúscula. |
|
[\p{N}] |
Cualquier tipo de carácter numérico. |
|
\Q ... \E |
Inicio y fin de una cita - (\QApprox.\E). Esto se utiliza para abreviaturas. |
|
\t |
Tabulador |
|
\n |
Salto de línea |
|
\u2029 |
Separador de párrafos |
|
\u200B |
Espacio de ancho cero |
|
\u3002 |
Punto ideográfico |
|
\ufe52 |
Punto pequeño |
|
\uff0e |
Punto de ancho completo |
|
\uff61 |
Punto ideográfico de ancho medio |
|
\ufe56 |
Signo de interrogación pequeño |
|
\uff1f |
Signo de interrogación de ancho completo |
|
\u203c |
Signo de exclamación doble |
|
\u2048 |
Signo de interrogación y exclamación |
|
\u2762 |
Adorno de signo de exclamación grueso |
|
\u2763 |
Adorno de signo de exclamación de corazón grueso |
|
\ufe57 |
Signo de exclamación pequeño |
|
\uff01 |
Signo de exclamación de ancho completo |
|
`[\u0080-\uFFFF]+` |
Caracteres del rango Unicode \u0080 a \uFFFF |
|
`[\u00a8\u00b9\u00c4]+` |
Una o más apariciones de los caracteres Unicode especificados dentro de los corchetes, p. ej. \u00a8 + \u00b9 + \u00c4 |
|
Control de calidad |
Regex de fuente |
Regex de meta |
|---|---|---|
|
Números adicionales en la meta |
|
|
|
Orden de las etiquetas (sin par, para segmentos con 3 etiquetas). Ajustar la expresión regular de acuerdo con el número requerido de etiquetas. |
|
|
|
Orden de las etiquetas (emparejadas, para segmentos con 3 etiquetas). Ajustar la expresión regular de acuerdo con el número requerido de etiquetas. |
|
|
|
Espacios antes de las etiquetas |
|
|
|
Espacios después de las etiquetas |
|
|
|
Sin espacio antes de las etiquetas |
|
|
|
Caracteres que no son espacios en blanco después de etiquetas emparejadas |
|
|
|
Faltan corchetes |
|
|
|
Faltan paréntesis |
|
|
|
Usar las siguientes expresiones regulares para comprobar el mismo recuento de números decimales idénticos, usando el separador decimal específico del idioma apropiado. |
|
|