El expresión regular (abreviado como regex o regexp) es una secuencia de caracteres que forman un patrón de búsqueda principalmente para su uso en la coincidencia de patrones con cadenas o cadena-matching. La funcionalidad es similar a las operaciones de búsqueda y reemplazo con más complejidad y especificidad. Vea la entrada de wikipedia para una descripción detallada de regexp y una tabla de caracteres usados.
Para usar varios regexps a la vez, insertar un carácter de canalización |
entre ellos.
Regexps se puede usar en los campos de filtro, búsqueda y reemplazo en el editor de escritorio CAT, en los campos fuente y meta de la función Buscar para contenido, para la función, Convertir a etiquetas en Archivo
Importante
Phrase soporta Java regexp, pero rechazar expresiones regulares complejas para proteger el sistema de sobrecargas. Los regexps complejos son aquellos con cuantificadores (excepto posesivos) en grupos que contienen otros cuantificadores (excepto posesivos).
Ejemplos para convertir texto en etiquetas al importar archivos y usar regexp en el editor para las funciones de búsqueda y reemplazo:
Ejemplo |
Descripción |
---|---|
<[^>]+> |
represents <html_tag> |
\{[^\}]+\} |
representa {variable}, |
\[[^\]]+\] |
representa [variable], |
\[\[.+?\]\] |
represents [[aa[11]bb]]. |
\$[^\$]+\$ |
representa $operator_Name1$. |
\d+ |
representa números. Also, [0-9]+ |
[A-Za-z0-9] |
representa cualquier carácter alfanumérico. |
.+\@.+\..+ |
email address name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
La fecha 2018-08-01 |
\s$ |
una espacio en blanco al final del segmento |
^\s |
un espacio en blanco al comienzo del segmento |
\s\s |
un doble espacio en blanco |
^\d |
un dígito al principio del segmento |
\w+\s\s\w+ |
una doble espacio en blanco entre palabras |
\s\n |
una nueva línea precedida por cualquier carácter espacio en blanco |
\S\n |
una nueva línea precedida por cualquier carácter que no sea espacio en blanco |
<[^>]+>|\$[^=]+= |
convierte variables PHP y código HTML ($svariable['name'] =) |
^\s*\'[^:]+: |
Convierte la clave de campo de JavaScript con agregado espacios en blanco al principio de la línea ('clave' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
no traduce {{text here}} '{{text here}} contenido y la convierte en etiquetas |
Ejemplos de expresiones regulares al importar un texto específico:
-
## ErrorMessage ##1## El número debe ser mayor que 0. ##Z##
Para importar texto entre ##1## y ##Z## ,use regexp: (?<=##1## ).*(?= ##Z## ,)
-
ErrorMessage ("El número debe ser mayor que 0.")
Para importar texto entre (" y ") , use regexp:
(?<=\(").*(?="\))
'errorMessage' = 'El número debe ser mayor que 0.'
Para importar texto después del signo = y entre ' y ' , use regexp: (?<=\= ').*(?= ') ,
-
errorMessage = "esto se va a traducir"
Para importar texto después del signo = y entre 'y'use regexp:
(?<=\= ").*(?=")
-
msgstr ("El número debe ser mayor que 0.")
Para importar msgstr cadenas en archivos OC monolingües con un filtro TXT, use regexp:
(?<=msgstr ").*(?=")
# Nota: Esta es una nota
Para excluir líneas que comienzan con # , use regexp: (^[^# , ].*)
valores '126', 'DCeT', 'Text (en)'
Para importar solo texto entre comillas y con (en), como Text (en)' use regexp: (?<=')[^']*\(en\)(?='),
Ejemplo de estructura JSON:
{
"list": {
"id": "1",
"valor": "texto 1 para traducción".
},
"text": {
"id": "2",
"valor": "texto 2 para traducción".
},
"menu": {
"id": "3",
"valor": "texto 3 para traducción".
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "AZUL"
}, { "color": "green", "title": "GREEN" } ]}
-
Para importar cada valor independientemente del nivel, utilice: (^|. */)valor
-
Para importar sólo un valor de una lista, utilice: lista/valor
-
Para importar un valor de una lista y/o menú, utilice el | (O) operador: lista/valor|menú/valor
-
Para importar sólo la primera instancia de un valor desde un menú, utilice: menu\[1\]/value
-
para importar el contenido de una matriz JSON después de una clave determinada, utilice: (^|. */)array\[.*\]
-
Para importar la contenido de una matriz específico de objetos, utilice: (^|. */)arrays\[.*\].*
Ejemplo de mosca 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
text: translate D
regexp para importar:
-
sólo 'traducir A' :
texto
-
solo 'traducir C':
categorías\[2\]/texto
-
only 'translate D':
categories\[\d+\]/content[\1\]/text
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 . SRX archivos.
Uso de regexp en . Los archivos SRX son complejos y se recomienda un conocimiento básico de expresión regular uso antes de intentar trabajo con ellos.
Las reglas de Nobreak (abreviaturas, etc.) y las reglas de Break (Final de la oración con un punto, etc.) están en . SRX archivos.
Ejemplo
Descripción
[\p{C}]
Carácter de control invisible.
[\p{Z}]
Espacios
[\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 un presupuesto - (\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 final
\uff0e
Punto completo
\uff61
Punto final ideográfico de ancho medio
\ufe56
Pequeño signo de interrogación
\uff1f
Signo de interrogación de ancho completo
\u203c
Doble signo de exclamación
\u2048
Signo de exclamación de pregunta
\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
QA Comprobar
Fuente Regexp
Regexp de destino
Números adicionales en meta
\d
\d
Etiquetas orden (no emparejadas)
^.*\{1\}.*\{2\}.*$
^.*\{1\}.*\{2\}.*$
Etiquetas orden (no emparejadas)
^.*\{1\}.*\{2\}.*\{3\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*$
Etiquetas orden (no emparejadas)
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
Etiquetas orden (emparejadas)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
Etiquetas orden (emparejadas)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
Espacios antes etiquetas
\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 de etiquetas
(\{[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
No hay espacio antes de etiquetas
\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}\})
Faltante corchetes
[^\[\]]*\[[^\[\]]*\][^\[\]]*
[^\[\]]*\[[^\[\]]*\][^\[\]]*
Faltante corchetes redondos
[^\(\)]*\([^\(\)]*\)[^\(\)]*
[^\(\)]*\([^\(\)]*\)[^\(\)]*