Le expression régulière (abrégé en regex ou expreg) est une séquence de caractères qui forment un modèle de recherche principalement pour une utilisation dans la correspondance de modèles avec chaînes ou chaîne-matching. La fonctionnalité est similaire pour trouver et remplacer des opérations avec plus de complexité et de spécificité. Voir l’entrée wikipedia pour une description détaillée de expreg et un tableau des caractères utilisés.
À utiliser plusieurs regexp à la fois, insérer un caractère de pipeline |
entre elles.
Les regexps peuvent être utilisées dans les champs de filtre, de recherche et de remplacement dans l’éditeur de bureau TAO, dans les champs source et cible de la fonction, chercher pour contenu, pour la fonction Convertir en balises dans Fichier paramètres d'importation et pour personnaliser les règlesde segmentation.
Important
Phrase prend en charge Java expreg, mais rejeter des expressions régulières complexes pour protéger le système contre la surcharge. Les regexps complexes sont celles avec quantificateurs (sauf possessifs) sur des groupes qui contiennent d’autres quantificateurs (sauf possessifs).
Exemples de conversion de texte en balises lors de l’importation de fichiers et de l’utilisation de expreg dans l’éditeur pour les fonctions de recherche et de remplacement :
Exemple |
Description |
---|---|
<[^>]+> |
représente <html_tag> |
\{[^\}]+\} |
représente {variable}, |
\[[^\]]+\] |
représente [variable], |
\[\[.+?\]\] |
représente [[aa[11]bb]]. |
\$[^\$]+\$ |
représente $operator_Name1$. |
\d+ |
représente des nombres. Aussi, [0-9]+ |
[A-Za-z0-9] |
représente n’importe quel caractère alphanumérique. |
.+\@.+\..+ |
Adresse électronique name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
La date 2018-08-01 |
\s$ |
un espace blanc à la fin de la segment |
^\s |
un espace blanc au début de la segment |
\s\s |
un double espace blanc |
^\d |
un chiffre au début de la segment |
\w+\s\s\w+ |
Un double espace blanc entre mots |
\s\n |
une nouvelle ligne précédée d’un caractère espace blanc |
\S\n |
une nouvelle ligne précédée d’un caractère non espace blanc |
<[^>]+>|\$[^=]+= |
Convertit le code PHP variables et HTML ($svariable['name'] =) |
^\s*\'[^:]+: |
Convertit le champ JavaScript clé avec ajouté espaces au début de la ligne ('Key' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
ne traduit {{text here}} pas '{{text here}} contenu et le convertit en balises |
Exemples d’expressions régulières lors de l’importation d’un texte spécifique :
-
## Message d’erreur ##1## Le nombre doit être supérieur à 0. ##Z##
À importer texte entre ##1## et ##Z## ,utilisez expreg: (?<=##1## ).*(?= ##Z## ,)
-
ErrorMessage (« Le nombre doit être supérieur à 0. »)
À importer texte entre ( » et « ) , utilisez expreg:
(?<=\(« ).*(?="\))
'errorMessage' = 'Le nombre doit être supérieur à 0.'
À importer texte après le signe = et entre ' et ' , utilisez expreg: (?<=\= ').*(?= ') ,
-
errorMessage = «ceci doit être traduit»
À importer texte après le signe = et entre 'et'utilisez expreg:
(?<=\= « ).*(?= »)
-
msgstr (« Le nombre doit être supérieur à 0. »)
À importer msgstr chaînes dans des fichiers BDC monolingues à l’aide d’un filtre TXT, utilisez expreg :
(?<=msgstr « ).*(?= »)
# Remarque : C’est un note
À exclure les lignes commençant par # , utilisez expreg: (^[^# , ].*)
valeurs '126', 'DCeT', 'Text (en)'
À importer uniquement du texte entre guillemets et avec (en), tel que Text (en)' utiliser expreg: (?<=')[^']*\(en\)(?='),
Exemple de structure JSON :
{
"list": {
"id": "1",
« value »: « texte 1 à traduire. »
},
"text": {
"id": "2",
« value »: « texte 2 à traduire. »
},
"menu": {
"id": "3",
« value »: « texte 3 à traduire. »
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": « BLEU »
}, { "color": "green", "title": « VERT » } ]}
-
Pour importer chaque valeur quel que soit le niveau, utilisez : (^|. */)valeur
-
Pour importer une seule valeur d’une liste, utilisez : liste/valeur
-
Pour importer une valeur à partir d’une liste et/ou d’un menu, utilisez le | (OU) opérateur : liste/valeur|menu/valeur
-
Pour importer uniquement la première instance d’une valeur à partir d’un menu, utilisez : menu\[1\]/value
-
pour importer le contenu d’un tableau JSON suivant un certain clé, utilisez : (^|. */)tableau\[.*\]
-
Pour importer la contenu d’une spécifique tableau d’objets, utilisez : (^|. */)arrays\[.*\].*
Exemple de mouche YAML :
titre: A
texte : traduire A
Catégories:
titre: B
texte: traduire B
Catégories:
titre: C
texte: traduire C
Catégories:
contenu :
titre: D
texte: traduire D
expreg pour l’importation :
-
seulement 'traduire A' :
texte
-
seulement 'traduire C':
catégories\[2\]/texte
seulement 'translate D': categories\[\d+\]/content[\1\]/text
Tout le texte : texte|catégories\[\d+\]/texte|catégories\[\d+\]/contenu[\d+\]/texte
Okapi, Java et Unicode sont utilisés pour les règles de segmentation dans . SRX.
Utilisation de expreg dans . Les fichiers SRX sont complexes et une connaissance de base de expression régulière utilisation est recommandée avant d’essayer d’en travail.
Les règles Nobreak (Abréviations, etc.) et les règles de rupture (Fin de la phrase avec un point, etc.) sont dans . SRX.
Exemple
Description
[\p{C}]
Caractère de contrôle invisible.
[\p{Z}]
Espaces
[\p{Lu}]
Lettre majuscule comportant une variante minuscule.
[\p{N}]
Tout type de caractère numérique.
\Q ... \E
Début et fin d’un devis - (\QApprox.\E). Ceci est utilisé pour les abréviations.
\t
Tabulatrice
\n
Newline
\u2029
Séparateur de paragraphes
\u200B
Espace de largeur nulle
\u3002
Point idéographique
\ufe52
Petit point complet
\uff0e
Point plein champ pleine largeur
\uff61
Point idéographique demi-chasse
\ufe56
Petit point d’interrogation
\uff1f
Point d’interrogation pleine chasse
\u203c
Double point d’exclamation
\u2048
Point d’exclamation
\u2762
Ornement de point d’exclamation lourd
\u2763
Ornement de point d’exclamation de cœur lourd
\ufe57
Petit point d’exclamation
\uff01
Point d’exclamation pleine largeur
AQ vérifier
Source Regexp
Regexp cible
Numéros supplémentaires dans cible
\d
\d
Tags commande (non appariés)
^.*\{1\}.*\{2\}.*$
^.*\{1\}.*\{2\}.*$
Tags commande (non appariés)
^.*\{1\}.*\{2\}.*\{3\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*$
Tags commande (non appariés)
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
Tags commande (jumelés)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
Tags commande (jumelés)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
Espaces avant balises
\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}\})
Espaces après balises
(\{[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
Pas d’espace avant balises
\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}\})
Manquant crochets
[^\[\]]*\[[^\[\]]*\][^\[\]]*
[^\[\]]*\[[^\[\]]*\][^\[\]]*
Manquant crochets ronds
[^\(\)]*\([^\(\)]*\)[^\(\)]*
[^\(\)]*\([^\(\)]*\)[^\(\)]*