La expresión regular (abreviada como regex o regex) es una secuencia de caracteres 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 mayor complejidad y especificidad o como un método para excluir contenido definido. Consulte la entrada de wikipedia para obtener una descripción detallada de la expresión regular y una tabla de caracteres usados.
Para usar varias expresiones regulares a la vez, insertar un carácter de tubería | entre ellas.
Las expresiones regulares se pueden 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 la configuración de importación de archivos y para personalizar las 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 de Lucene regex.
Consejo
Los chatbots de IA pueden ser muy efectivos para generar y verificar expresiones regulares.
Usar Herramientas como Regex101 para probar expresiones regulares 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 name@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 |
una nueva línea precedida por cualquier carácter de espacio en blanco |
|
\S\n |
una nueva línea precedida 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 {{text here}} contenido '{{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óstrofes ' ' |
|
\"[^"]+\" |
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 HTML/XML de apertura y cierre |
Nota
Dado que los archivos TXT en TMS se procesan línea por línea, ciertas expresiones regulares que trabajo 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 (\" and \") , usar regex:
(?<=\\(\").*(?=\"\\)) -
'errorMessage' = 'The number must be higher than 0.'
Para importar texto después del signo = y entre ' and ' , usar regex:
(?<=\\= ').*(?=') -
errorMessage = \"esto debe ser traducido\"
Para importar texto después del signo = y entre 'and' 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 menu, usar el operador | (O):
lista/value|menu/value -
para importar solo la primera instancia de un valor de un menu, usar:
menu\\[1\\]/value -
para importar el contenido de una matriz JSON siguiendo 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 un conocimiento básico del 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 |
Nueva línea |
|
\u2029 |
Separador de párrafos |
|
\u200B |
Espacio de ancho cero |
|
\u3002 |
Punto final ideográfico |
|
\ufe52 |
Punto final pequeño |
|
\uff0e |
Punto final 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 pesado |
|
\u2763 |
Adorno de signo de exclamación de corazón pesado |
|
\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 meta |
|
|
|
Orden de las etiquetas (sin emparejar, para segmentos con 3 etiquetas). Ajuste la expresión regular de acuerdo con el número requerido de etiquetas. |
|
|
|
Orden de las etiquetas (emparejadas, para segmentos con 3 etiquetas). Ajuste 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 verificar la misma cantidad de números decimales idénticos, usando el separador decimal apropiado para el idioma. |
|
|