La expresión regular (abreviada como regex o regexp) es una secuencia de caracteres que forman un patrón de búsqueda principalmente para usar en la concordancia de patrones con Strings o concordancia de cadenas. Las funciones son similares a encontrar y reemplazar operaciones con más complejidad y especificidad o como método para excluir contenidos definidos. Ver la entrada wikipedia para una descripción detallada de regexp y una tabla de caracteres usados.
Para usar varias regexps a la vez, inserte un carácter pipeline |
entre ellas.
Regexps se puede utilizar para filtrar, buscar y reemplazar campos en el editor de escritorio CAT, en los campos fuente y meta de la función Search for contenido, para la función en configuración File import y para personalizar reglas de segmentación.
Los chatbots IA pueden ser muy efectivos a la hora de generar y verificar regexp.
Importante
Phrase admite Java regexp, pero rechazará expresiones regulares complejas para proteger el sistema de sobrecargas. Las regexps complejas son aquellas con cuantificadores (excepto posesivos) sobre grupos que contienen otros cuantificadores (excepto posesivos).
Ejemplos para convertir texto en tags al importar archivos y usar regexp en el editor para funciones de búsqueda y reemplazar:
Ejemplo |
Descripción |
---|---|
<[^>]+> |
represents <html_tag> |
\{[^\}]+\} |
representa {variable}, |
\[[^\]]+\] |
representa [variable], |
\[\[.+?\]\] |
representa [[aa[11]bb]]. |
\$[^\$]+\$ |
representa $operator_Name1$. |
\d+ |
representa números. Además, [0-9]+ |
[A-Za-z0-9] |
representa cualquier carácter alfanumérico. |
.+\@.+\..+ |
dirección 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 doble espacio en blanco |
^\d |
un dígito al principio del segmento |
\w+\s\s\w+ |
un doble espacio en blanco entre palabras |
\s\n |
una nueva línea precedida de cualquier carácter a espacios en blanco |
\S\n |
una nueva línea precedida de cualquier carácter sin espacios en blanco |
<[^>]+>|\$[^=]+= |
convierte variables PHP y código HTML ($svariable['name'] =) |
^\s*\'[^:]+: |
convierte la clave de campo de javascript con espacios en blanco agregados al principio de la línea ( 'clave' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
no traduce el contenido de {{text here}}{{text here}} y lo convierte en tags |
Ejemplos de expresiones regulares al importar un texto específico:
-
## Mensaje de error ##1## El número debe ser mayor que 0. ##Z##
Para importar texto entre ##1## y ##Z## ,use regexp:
(?<=##1## ).*(?= ##Z##)
-
Mensaje de error ("El número debe ser superior a 0.")
Para importar texto entre (" y ") , use regexp:
(?<=\(").*(?="\))
-
'Mensaje de error' = 'El número debe ser superior a 0.'
Para importar texto después del signo = y entre ' y ' , use regexp:
(?<=\= ').* (?=')
-
Mensaje de error = "Esto se debe traducir"
Para importar texto después del signo = y entre 'y' use regexp:
(?<=\=").* (?=")
-
msgstr ("El número debe ser superior a 0.")
Para importar Strings msgstr en archivos PO monolingües usando un filtrado TXT, use regexp:
(?<=msgstr ").* (?=")
-
# Nota: Esta es una nota
Para excluir líneas que empiecen con # , use regexp:
(^[^#].*)
-
valores «126», «DCeT», «Texto (en)»
Para importar solo texto entre comillas y con (en), como Texto (en)' use regexp:
(?<=')[^']*\(en\)(?=')
Ejemplo de estructura JSON:
{ "lista": { "id": "1", "value": "texto 1 para traducción". }, "text": { "id": "2", "value": "texto 2 para traducción". }, "menú": { "id": "3", "value": "texto 3 para traducción". },"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "AZUL" }, { "color": "green", "title": "VERDE" } ]}
-
para importar todos los valores independientemente del nivel, use:
(^|.*/)value
-
para importar solo un valor de una lista, usar:
lista / valor
-
para importar un valor de una lista o menú, usar el operador | (OR):
lista/valor|menú/valor
-
para importar solo la primera instancia de un valor desde un menú, use:
menú\[1\]/value
-
para importar el contenido de una matriz JSON que sigue a una determinada clave, use:
(^|.*/)array\[.*\]
-
para importar el contenido de una matriz específica de objetos, use:
(^|.*/)arrays\[.*\].*
Ejemplo de archivo YAML:
título: A text: translate A categorías: título: B text: translate B categorías: título: C texto: traducir C categorías: contenido: título: D texto: traducir D
regexp 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:
text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
Okapi, Java y Unicode se utilizan para reglas de segmentación en archivos .SRX.
El uso de regexp en archivos .SRX es complejo y se recomienda un conocimiento básico de expresión regular usar antes de intentar trabajo con ellos.
Las reglas de no salto (Abreviaturas, etc.) y reglas de salto (Fin de la frase con un punto, etc.) se encuentran en los archivos .SRX.
Ejemplo |
Descripción |
---|---|
[\p{C}] |
Carácter control invisible. |
[\p{Z}] |
Espacio en blanco |
[\p{Lu}] |
Una letra en 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 cotización - (\QApprox.\E). Esto se utiliza para abreviaturas. |
\t |
Tabulador |
\n |
Newline |
\u2029 |
Separador de párrafos |
\u200B |
Espacio de ancho cero |
\u3002 |
Punto final ideográfico |
\ufe52 |
Pequeño punto completo |
\uff0e |
Punto completo de ancho completo |
\uff61 |
Punto completo ideográfico de ancho medio |
\ufe56 |
Pequeño signo de interrogación |
\uff1f |
Signo de interrogación de ancho completo |
\u203c |
Signo de exclamación doble |
\u2048 |
Signo de exclamación de interrogación |
\u2762 |
Adorno pesado del signo de exclamación |
\u2763 |
Adorno pesado del signo de exclamación del corazón |
\ufe57 |
Pequeño signo de exclamación |
\uff01 |
Signo de exclamación de ancho completo |
Verificación QA |
Regexp fuente |
Regexp meta |
---|---|---|
Números adicionales en meta |
|
|
Orden tags (no emparejado, para segmentos de 3 tags). Ajusta la regexp según el número requerido de tags. |
|
|
Orden tags (emparejado, para segmentos de 3 tags). Ajusta la regexp según el número requerido de tags. |
|
|
Espacios antes tags |
|
|
Espacios after tags |
|
|
Sin espacio antes de tags |
|
|
Caracteres que no son espacios en blanco después de tags pareados |
|
|
Faltan corchetes |
|
|
Faltan corchetes |
|
|