L'expression régulière (abrégée en regex ou regexp) est une séquence de caractères qui forme un motif de recherche principalement à utiliser dans la correspondance de motif avec Strings ou la correspondance de chaîne. La fonctionnalité est similaire pour trouver et remplacer les opérations avec plus de complexité et de spécificité ou comme méthode pour exclure contenu défini. Voir l'entrée wikipédia pour une description détaillée des expreg et un tableau des caractères utilisés.
Pour utiliser plusieurs expreg à la fois, insérez un caractère pipeline |
entre elles.
Regexps peut être utilisé dans les champs filtrer, chercher et remplacer dans l'éditeur de bureau CAT, dans les champs source et cible de la fonctionnalité Rechercher contenu, pour la fonction dans Paramètres importer fichier et pour personnaliser les règles segmentations.
Astuce
Les chatbots IA peuvent être très efficaces pour générer et vérifier les expreg.
Utilisez Outils comme Regex101 pour tester regexp avec différentes entrées.
Important
Phrase prend en charge les regexp Java, mais rejette les expressions régulières complexes pour protéger le système contre la surcharge. Les expreg complexes sont celles avec des quantificateurs (sauf possessifs) sur des groupes qui contiennent d'autres quantificateurs (sauf possessifs).
Exemples de conversion de texte en tags lors de l'importation de fichiers et de l'utilisation d'regexp dans l'éditeur pour les fonctions de recherche et remplacer :
Exemple |
Description |
---|---|
<[^>]+> |
represents <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 tout caractère alphanumérique. |
.+\@.+\..+ |
adresse e-mail name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
la date 2018-08-01 |
\s$ |
un espacement à la fin du segment |
^\s |
un espacement au début du segment |
\s\s |
un double espace |
^\d |
un chiffre au début du segment |
\w+\s\s\w+ |
un double espace entre les mots |
\s\n |
un saut de ligne précédé de tout caractère espacement |
\S\n |
un saut de ligne précédé de tout caractère non-espacement |
<[^>]+>|\$[^=]+= |
convertit les variables PHP et le code html ($svariable['name'] =) |
^\s*\'[^:]+ : |
convertit la clé de champ javascript avec ajout d'espaces blancs en début de ligne ( 'clé' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
ne traduit pas le contenu {{text here}} '{{text here}} et le convertit en tags |
\{\{[^\}]+\}\} |
représente le texte entre {{}} crochets |
\([^\)]+\) |
représente le texte entre accolades () |
\^[^\^]+\^ |
représente le texte entre ^ marques |
\@[^\@]+\@ |
représente le texte entre les marques @ |
\^[^\^\?]+\? |
représente un texte entre ^ et ? marques |
\'[^']+\' |
représente le texte entre les apostrophes ' ' |
\"[^"]+\" |
représente le texte entre "" guillemets |
\%[^\%]+\% |
représente un texte entre % symboles |
\$\{[^}]*\} |
représente un texte compris entre ${ et }, par exemple ${variable} |
$[a-zA-Z0-9\-_]+ |
représente une chaîne qui commence par $, par exemple $appName |
(?<=\: ").*(?=") |
représente le texte entre guillemets doubles après deux points et Espace, par exemple |
(?<=\: ').*(?=') |
représente le texte entre guillemets simples après deux points et un Espace, par exemple |
(?<=\=).*(?=) |
représente du texte après un signe égal et sans Espace, par exemple clé=valeur |
(.*)= |
représente du texte avant un signe égal |
[^=]*$ |
représente le texte après un signe égal |
\/\/\S* |
représente des liens hypertextes. Également, https:\/\/\S* |
</?mrk[^>]*> |
représente les tags |
\b[\p{Lu}]+\b |
représente des mots entiers en lettres majuscules |
Remarque
Les fichiers TXT dans TMS étant traités ligne par ligne, certaines expressions régulières qui travail dans d'autres environnements peuvent ne pas fonctionner comme prévu.
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##
Pour importer du texte entre ##1## et ##Z## ,utilisez regexp:
(?<=##1## ).*(?= ##Z##)
-
Message d’erreur (« Le nombre doit être supérieur à 0. »)
Pour importer du texte entre (" et ") , utilisez regexp:
(?<=\(").*(?="\))
-
'errorMessage' = 'Le nombre doit être supérieur à 0.'
Pour importer du texte après le signe = et entre ' et ' , utilisez regexp:
(?<=\= ').*(?=')
-
errorMessage = « cela doit être traduit »
Pour importer du texte après le signe = et entre 'et' utilisez regexp:
(?<=\= ").*(?=")
-
msgstr ("Le nombre doit être supérieur à 0.")
Pour importer msgstr Strings dans des fichiers BDC monolingues à l'aide d'un filtre TXT, utilisez regexp:
(?<=msgstr ").*(?=")
-
# Note : Ceci est une note
Pour exclure les lignes commençant par # , utilisez regexp:
(^[^#].*)
-
valeurs '126', 'DCeT', 'Texte (fr)'
Pour importer uniquement du texte entre guillemets et avec (en), comme Texte (fr)' utilisez regexp:
(?<=')[^']*\(fr\)(?=')
Exemple de structure JSON :
{ "liste": { "Identifiant": "1", "value": "text 1 for translation." }, "text": { "Identifiant": "2", "value": "text 2 for translation." }, "menu": { "Identifiant": "3", "value": "text 3 for translation." },"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLUE" « BLEU » }, { "color": "green", "title": « VERT » } ]}
-
pour importer chaque valeur quel que soit le niveau, utilisez :
(^|.*/)value
-
pour importer une seule valeur depuis une liste, utilisez :
liste/valeur
-
pour importer une valeur depuis une liste et/ou un menu, utilisez l’opérateur | (OU) :
liste/valeur|menu/valeur
-
pour importer uniquement la première instance d'une valeur depuis un menu, utilisez :
menu\[1\]/valeur
-
pour importer le contenu d'un tableau JSON suivant une certaine clé, utilisez :
(^|.*/)tableau\[.*\]
-
pour importer le contenu d'un tableau d'objets spécifique, utilisez :
(^|.*/)tableaux\[.*\].*
Exemple de fichier YAML :
titre : A text: translate A categories: titre : B text: translate B categories: titre : C text: translate C categories: content: titre : D text: translate D
expreg pour l’importation :
-
only 'translate A' :
text
-
uniquement « traduire C » :
catégories\[2\]/texte
-
uniquement 'traduire D' :
catégories\[\d+\]/contenu[\1\]/texte
-
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 des fichiers .SRX.
Utiliser regexp dans les fichiers .SRX est complexe et une connaissance de base des expressions régulières utilisées est recommandée avant de tenter de travail avec eux.
Les règles Nobreak (abréviations, etc.) et Break (fin de phrase par un point, etc.) sont dans des fichiers .SRX.
Exemple |
Description |
---|---|
[\p{C}] |
Caractère invisible de contrôle. |
[\p{Z}] |
Espace blanc |
[\p{Lu}] |
Une lettre majuscule qui a 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 |
Tabulateur |
\n |
Newline |
\u2029 |
Séparateur de paragraphes |
\u200B |
Espace zéro largeur |
\u3002 |
Point plein idéographique |
\ufe52 |
Petit point plein |
\uff0e |
Point plein pleine largeur |
\uff61 |
Point plein idéographique demi-largeur |
\ufe56 |
Petit point d'interrogation |
\uff1f |
Point d'interrogation pleine largeur |
\u203c |
Double point d'exclamation |
\u2048 |
Point d'exclamation d'interrogation |
\u2762 |
Ornement lourd de point d'exclamation |
\u2763 |
Ornement de point d'exclamation de coeur lourd |
\ufe57 |
Petit point d'exclamation |
\uff01 |
Point d'exclamation pleine largeur |
`[\u0080-\uFFFF]+` |
Caractères de la gamme Unicode \u0080 à \uFFFF |
`[\u00a8\u00b9\u00c4]+` |
Une ou plusieurs occurrences des caractères Unicode spécifiés entre crochets, par exemple \u00a8 + \u00b9 + \u00c4 |
Contrôle QA |
Source Regexp |
Expreg cible |
---|---|---|
Chiffres supplémentaires en cible |
|
|
Commande tags (non apparié, pour les segments à 3 tags). Ajuste l'expreg en fonction du nombre de tags requis. |
|
|
Commande tags (par paire, pour les segments à 3 tags). Ajuste l'expreg en fonction du nombre de tags requis. |
|
|
Espaces avant tags |
|
|
Espaces après tags |
|
|
Aucun Espace avant tags |
|
|
Caractères non espaces après tags appariés |
|
|
Crochets manquants |
|
|
Crochets ronds manquants |
|
|