Importar utilidades

Regexp (TMS)

El contenido se traduce automáticamente del inglés por Phrase Language AI.

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 concordancia de patrones con Strings o concordancia de cadenas. Las funciones son similares a encontrar y reemplazar operaciones con mayor complejidad y especificidad o como método para excluir contenidos definidos. Ver la entrada de Wikipedia para una descripción detallada de regexp y una tabla de caracteres usados.

Para usar varias regexps a la vez, inserta un carácter pipeline | entre ellas.

Las Regex pueden utilizarse para filtrar, buscar y reemplazar en el editor de escritorio CAT, en los campos fuente y meta de la función Buscar contenido, para la función Convertir en tags en configuración Importar archivos y para personalizar las reglas de segmentación.

Consejo

Los chatbots IA pueden ser muy eficaces a la hora de generar y verificar regexp.

Usa Herramientas como Regex101 para probar regexp con diferentes entradas.

Importante

phrase admite regexp Java, pero rechazará expresiones regulares complejas para proteger el sistema de sobrecargas. Las regexps complejas son aquellas con cuantificadores (excepto posesivos) en grupos que contienen otros cuantificadores (excepto posesivos).

Ejemplos generales

Ejemplos para convertir texto en tags al importar archivos y usar regexp en el editor para buscar y reemplazar funciones:

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 espacio en blanco doble

^\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 de espacio en blanco

\S\n

una nueva línea precedida de cualquier carácter que no sea de 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 {{text here}} '{{text here}} y lo convierte en tags

\{\{[^\}]+\}\}

representa texto entre {{}} llaves

\([^\)]+\)

representa texto entre () llaves

\^[^\^]+\^

representa texto intermedio ^ marcas

\@[^\@]+\@

representa texto entre las marcas @

\^[^\^\?]+\?

representa texto entre las marcas ^ y ?

\'[^']+\'

representa texto intermedio ' ' apóstrofes

\"[^"]+\"

representa el 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

(?&lt;=\: ").*(?=")

representa el texto entre comillas dobles después de un punto y espacio, p. ej., valor en la cadena "clave": "valor"

(?&lt;=\: ').*(?=')

representa el texto dentro de comillas simples después de un punto y espacio, por ejemplo, JohnDoe en la cadena usuario: 'JohnDoe'

(?&lt;=\=).*(?=)

representa el texto después de un signo igual y sin espacio, p. ej. clave=valor

(.*)=

representa el texto antes de un signo igual

[^=]*$

representa el texto después de un signo igual

\/\/\S*

representa hipervínculos. Also, https:\/\/\S*

</?mrk[^&gt;]*>

representa tags mrk abiertos y cerrados HTML/XML, p. ej. <mrk ID="abc"> y </mrk>

\b[\p{Lu}]+\b

representa palabras enteras en mayúsculas

TXT Importar

Nota

Dado que los archivos TXT en TMS se procesan línea por línea, es posible que ciertas expresiones regulares que trabajo en otros entornos no funcionen como se esperaba.

Ejemplos de expresiones regulares al importar un texto específico:

  1. ## Mensaje de error ##1## El número debe ser mayor que 0. ##Z##

    Para importar texto entre ##1## y ###Z## , use regexp: (?<=##1## ).*(?= ##Z##)

  2. Mensaje de error ("El número debe ser superior a 0.")

    Para importar texto entre (" y ") , usa regexp: (?<=\(").*(?="\)

  3. 'mensaje de error' = 'El número debe ser superior a 0.'

    Para importar texto después del signo = y entre ' y ' , use regexp: (?<=\= ').*(?=')

  4. errorMessage = "Esto se va a traducir"

    Para importar texto después del signo = y entre 'y' use regexp: (?<=\= ").* (?=")

  5. 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").*(?=")

  6. # Nota: Esta es una nota

    Para excluir líneas que empiecen con # , use regexp: (^[^#].*)

  7. valores «126», «DCeT», «Texto (en)»

    Para importar solo texto entre comillas y con (en), como Texto (en)' usa regexp: (?<=')[^']*\(en\)(?=')

JSON Import

Ejemplo de estructura JSON:

{
"lista": {
        "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": "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 o 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\[.*\].*

Importar YAML

Ejemplo de archivo YAML:

título: A
text: translate A
categories:
  título: B
  text: translate B
categories:
  título: C
  text: translate C
categories:
  content:
      título: D
      text: translate 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|categorías\[\d+\]/text|categorías\[\d+\]/content[\d+\]/text

Reglas de segmentación

Se usan Okapi, Java y Unicode 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 trabajar con ellos.

Las reglas de nobreak (abreviaturas, etc.) y las reglas de break (final de la frase con un punto, etc.) se encuentran en archivos .SRX.

Ejemplo

Descripción

[\p{C}]

Carácter invisible de control.

[\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 de fuerte 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

`[\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

Comunes revisiones de QA personalizadas

Control de calidad

Regexp fuente

Regexp meta

Números adicionales en meta

\d 

\d 

Tags orden (no emparejados, para segmentos con 3 tags).

Ajusta la regexp según el número requerido de tags.

^.*\{1\}.*\{2\}.*\{3\}.*$

^.*\{1\}.*\{2\}.*\{3\}.*$

Tags orden (pareados, para segmentos con 3 tags).

Ajusta la regexp según el número requerido de tags.

^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$

^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$

Espacios antes tags

\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]**\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]**\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

Espacios después tags

(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]**\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})\s

(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]**\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})\s

Sin espacio antes de tags

\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]**\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[1-9][0-9]**\}|\{[biu_\^]{1,4}>|<[biu_\^]{1,4}\})

Caracteres que no son espacios en blanco después de tags pareados

((\{[1-9][0-9]*>)|(<[1-9][0-9]*\}))\S

((\{[1-9][0-9]*>)|(<[1-9][0-9]*\}))\S

Faltan corchetes

[^\[\]]*\[[^\[\]]*\][^\[\]]* 

[^\[\]]*\[[^\[\]]*\][^\[\]]* 

Faltan llaves redondas

[^\(\)]*\([^\(\)]*\)[^\(\)]* 

[^\(\)]*\([^\(\)]*\)[^\(\)]* 

¿Fue útil este artículo?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.