La expresión regular (abreviada como regex o regex) es una secuencia de caracteres que forma un patrón de búsqueda principalmente para su uso en la coincidencia de patrones con cadenas o coincidencia de cadenas. 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 una descripción detallada de regex y una tabla de caracteres utilizados.
Para usar múltiples regex a la vez, inserte un carácter de tubería | entre ellos.
Regex se puede usar en los campos de filtrar, buscar y reemplazar en el editor CAT, en los campos de origen y destino de la función de búsqueda de contenido, para la función de en configuración de importación de archivos y para personalizar reglas de segmentación. El convertidor y el editor de escritorio CAT utilizan Java regex, mientras que el editor web CAT y la búsqueda en TMS utilizan el motor Lucene regex.
Consejo
Los chatbots de IA pueden ser muy efectivos para generar y verificar regex.
Usa 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 regex 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 regex en el editor de escritorio para funciones de filtrado y buscar y reemplazar:
|
Ejemplo |
Descripción |
|---|---|
|
<[^>]+> |
represents <html_tag> |
|
\{[^\}]+\} |
representa {variable}, |
|
\[[^\]]+\] |
representa [variable], |
|
\[\[.+?\]\] |
representa [[aa[11]bb]]. |
|
\$[^\$]+\$ |
represents $operator_Name1$. |
|
\d+ |
representa números. También, [0-9]+ |
|
[A-Za-z0-9] |
representa cualquier carácter alfanumérico. |
|
.+\@.+\..+ |
dirección de correo electrónico name@domain.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 doble espacio en blanco |
|
^\d |
un dígito al principio del segmento |
|
\w+\s\s\w+ |
un doble espacio 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 un espacio en blanco |
|
<[^>]+>|\$[^=]+= |
convierte variables de php y código html ($svariable['name'] =) |
|
^\s*\'[^:]+: |
convierte la clave del campo de javascript con espacios añadidos al principio de la línea ( 'key' :) |
|
\{\{[^\}]+\}\}|\'[^']+\' |
no traduce {{text here}} '{{text here}} contenido y lo convierte en etiquetas |
|
\{\{[^\}]+\}\} |
representa texto entre corchetes {{}} |
|
\([^\)]+\) |
representa texto entre paréntesis () |
|
\^[^\^]+\^ |
representa texto entre marcas ^ |
|
\@[^\@]+\@ |
representa texto entre marcas @ |
|
\^[^\^\?]+\? |
representa texto entre los marcadores ^ y ? |
|
\'[^']+\' |
representa texto entre los apóstrofes ' ' |
|
\"[^"]+\" |
representa texto entre las comillas "" |
|
\%[^\%]+\% |
representa texto entre los símbolos % |
|
\$\{[^}]*\} |
representa texto entre ${ y }, por ejemplo, ${variable} |
|
\$[a-zA-Z0-9\-_]+ |
representa una cadena que comienza con $, por ejemplo, $appName |
|
(?<=\: ").*(?=") |
representa texto dentro de comillas dobles después de dos puntos y un espacio, por ejemplo, |
|
(?<=\: ').*(?=') |
representa texto dentro de comillas simples después de dos puntos y un espacio, por ejemplo, |
|
(?<=\=).*(?=) |
representa texto después de un signo igual y sin espacio, por ejemplo, clave=valor |
|
(.*)= |
representa texto antes de un signo igual |
|
=(.*) |
representa el 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:
-
## MensajeDeError ##1## El número debe ser mayor que 0. ##Z##
Para importar texto entre ##1## y ##Z##, usa regex:
(?<=##1## ).*(?= ##Z##) -
MensajeDeError ("El número debe ser mayor que 0.")
Para importar texto entre (" y "), usa regex:
(?<=\(").*(?="\)) -
'mensajeDeError' = 'El número debe ser mayor que 0.'
Para importar texto después del signo = y entre ' y ', usa regex:
(?<=\= ').*(?=') -
mensajeDeError = "esto se va a traducir"
Para importar texto después del signo = y entre 'y' usa regex:
(?<=\= ").*(?=") -
msgstr ("El número debe ser mayor que 0.")
Para importar cadenas msgstr en archivos PO monolingües usando un filtro TXT, usa regex:
(?<=msgstr ").*(?=") -
# Nota: Esta es una nota
Para excluir líneas que comienzan con #, usa regex:
(^[^#].*) -
valores '126', 'DCeT', 'Texto (en)'
Para importar solo texto entre comillas y con (en), como Texto (en)', usa regex:
(?<=')[^']*\(en\)(?=')
Ejemplo de estructura JSON:
{
"lista": {
"id": "1",
"value": "text 1 for translation."
},
"text": {
"id": "2",
"value": "text 2 for translation."
},
"menú": {
"id": "3",
"value": "text 3 for translation."
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLUE"
}, { "color": "green", "title": "GREEN" } ]}
-
para importar cada valor sin importar el nivel, usa:
(^|.*/)valor -
para importar solo un valor de una lista, usa:
lista/valor -
para importar un valor de una lista y/o menú, usa el operador | (O):
lista/valor|menú/valor -
para importar solo la primera instancia de un valor de un menú, usa:
menú\[1\]/valor -
para importar el contenido de un array JSON siguiendo una clave determinada, usa:
(^|.*/)array\[.*\] -
para importar el contenido de un array específico de objetos, usa:
(^|.*/)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
regex para importar:
-
solo 'traducir A' :
texto -
solo 'traducir C':
categorías\[2\]/texto -
solo 'traducir D':
categorías\[\d+\]/contenido[\1\]/texto -
todo el texto:
texto|categorías\[\d+\]/texto|categorías\[\d+\]/contenido[\d+\]/texto
Okapi, Java y Unicode se utilizan para las reglas de segmentación en archivos .SRX.
Usar expresiones regulares en archivos .SRX es complejo y se recomienda tener un conocimiento básico del uso de expresiones regulares antes de intentar trabajar con ellas.
Las reglas de No ruptura (Abreviaturas, etc.) y las reglas de ruptura (Fin de la oración con un punto, etc.) están en 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 en minúscula. |
|
[\p{N}] |
Cualquier tipo de carácter numérico. |
|
\Q ... \E |
Inicio y fin de una cita - (\QAprox.\E). Esto se utiliza para abreviaturas. |
|
\t |
Tabulador |
|
\n |
Nueva línea |
|
\u2029 |
Separador de párrafo |
|
\u200B |
Espacio de ancho cero |
|
\u3002 |
Punto ideográfico completo |
|
\ufe52 |
Pequeño punto |
|
\uff0e |
Punto de ancho completo |
|
\uff61 |
Punto ideográfico de medio ancho |
|
\ufe56 |
Pequeño signo de interrogación |
|
\uff1f |
Signo de interrogación de ancho completo |
|
\u203c |
Doble signo de exclamación |
|
\u2048 |
Signo de interrogación exclamativo |
|
\u2762 |
Adorno de signo de exclamación pesado |
|
\u2763 |
Adorno de signo de exclamación de corazón pesado |
|
\ufe57 |
Pequeño signo de exclamación |
|
\uff01 |
Signo de exclamación de ancho completo |
|
`[\u0080-\uFFFF]+` |
Caracteres del rango Unicode \u0080 a \uFFFF |
|
`[\u00a8\u00b9\u00c4]+` |
Una o más ocurrencias de los caracteres Unicode especificados dentro de los corchetes cuadrados, por ejemplo, \u00a8 + \u00b9 + \u00c4 |
|
Control de calidad |
Expresión regular de origen |
Expresión regular de destino |
|---|---|---|
|
Números adicionales en el destino |
|
|
|
Orden de etiquetas (sin emparejar, para segmentos con 3 etiquetas). Ajuste la expresión regular de acuerdo con el número requerido de etiquetas. |
|
|
|
Orden de 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 no espaciales después de etiquetas emparejadas |
|
|
|
Faltan corchetes cuadrados |
|
|
|
Faltan paréntesis redondos |
|
|
|
Utilice las siguientes expresiones regulares para verificar la misma cantidad de números decimales idénticos, utilizando el separador decimal específico del idioma correspondiente. |
|
|