Importer des outils

Regexp (TMS)

Le contenu est traduit de l’anglais par Phrase Language AI.

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 Convertir en tags 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 généraux

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

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

représente le texte entre guillemets doubles après deux points et Espace, par exemple valeur dans la chaîne "clé": "valeur"

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

représente le texte entre guillemets simples après deux points et un Espace, par exemple JohnDoe dans l'utilisateur chaîne : 'JohnDoe'

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

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[^&gt;]*>

représente les tags mrk HTML/XML ouverts et fermés, par exemple <mrk Identifiant="abc"> et </mrk>

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

représente des mots entiers en lettres majuscules

TXT Importer

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 :

  1. ## Message d’erreur ##1## Le nombre doit être supérieur à 0. ##Z##

    Pour importer du texte entre ##1## et ##Z## ,utilisez regexp: (?<=##1## ).*(?= ##Z##)

  2. Message d’erreur (« Le nombre doit être supérieur à 0. »)

    Pour importer du texte entre (" et ") , utilisez regexp: (?<=\(").*(?="\))

  3. 'errorMessage' = 'Le nombre doit être supérieur à 0.'

    Pour importer du texte après le signe = et entre ' et ' , utilisez regexp: (?<=\= ').*(?=')

  4. errorMessage = « cela doit être traduit »

    Pour importer du texte après le signe = et entre 'et' utilisez regexp: (?<=\= ").*(?=")

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

  6. # Note : Ceci est une note

    Pour exclure les lignes commençant par # , utilisez regexp: (^[^#].*)

  7. valeurs '126', 'DCeT', 'Texte (fr)'

    Pour importer uniquement du texte entre guillemets et avec (en), comme Texte (fr)' utilisez regexp: (?<=')[^']*\(fr\)(?=')

JSON Import

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\[.*\].*

YAML Importer

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

Segmentation Rules

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

Vérifications de QA personnalisées communes

Contrôle QA

Source Regexp

Expreg cible

Chiffres supplémentaires en cible

\d 

\d 

Commande tags (non apparié, pour les segments à 3 tags).

Ajuste l'expreg en fonction du nombre de tags requis.

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

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

Commande tags (par paire, pour les segments à 3 tags).

Ajuste l'expreg en fonction du nombre de tags requis.

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

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

Espaces avant 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}\})

Espaces aprè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

Aucun Espace avant 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}\})

Caractères non espaces après tags appariés

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

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

Crochets manquants

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

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

Crochets ronds manquants

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

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

Cet article vous a-t-il été utile ?

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.