Éditeurs TAO

Regex dans l'éditeur en ligne (TMS)

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

La prise en charge des regex dans l'éditeur en ligne est limitée par l'implémentation du moteur Lucene Regex.

Pour utiliser des regex, activer Match using regex dans les paramètres de filtre. Une coche verte dans le champ de saisie du filtre indique la validation réussie d'une regex valide.

Les requêtes sont par défaut insensibles à la casse. Activer Match case dans les paramètres de filtre pour les rendre sensibles à la casse.

Match words (garantissant la correspondance uniquement avec des mots complets et non des sous-chaînes au sein de mots plus longs) n'est pas disponible.

La requête ^abc$ fonctionnera comme prévu, c'est-à-dire en correspondant au segment entier, tandis que abc correspondra à la sous-chaîne abc dans n'importe quel texte.

Limitations

Le remplacement correct de requêtes partiellement formatées n'est pas pris en charge, par ex. la recherche de "Jméno: $1, Příjmení: $2." dans le texte "\{b\>First name<}: Bob, \{biu\>Last name\<biu\}: Dylan." sera remplacé par « {>Jméno: Bob, Příjmení: Dylan\<b\} »

Modèles non pris en charge

  • Ancre de limite de mot \\b utilisée pour la correspondance de mots exacts (fonctionne dans l'éditeur de bureau).

  • \\\\[1-9] - Références arrière (\\1, \\2, etc.), par ex. (\\w+)\\s+\\1 pour la correspondance de mots dupliqués comme « hello hello »

  • \\(\\?=|\\(\\?!|\\(\\?&lt;=|\\(\\?&lt;! - Lookahead et lookbehind, par ex. cat(?=\\.jpg) pour la correspondance de « cat » uniquement dans « cat.jpg »

  • \\(\\?: - Groupes sans capture, par ex. (?:Mr|Mrs|Ms)\\. \\w+, mais les groupes de capture (Mr|Mrs|Ms)\\. \\w+ sont pris en charge et correspondent à des noms comme « Mrs. Smith », « Mr. Brown »

  • \\(\\?# - Commentaires en ligne, par ex. \\d\{4\}-(?# year)\\d\{2\}-(?# month)\\d\{2\}(?# day) pour la correspondance de « 2025-06-25 »

  • \\(\\?P<[^>]+> - Groupes de capture nommés, par ex. (?P<amount>\\d+)\\s?(?P<currency>USD|EUR) pour la correspondance de « 150 USD » et « 99 EUR »

Utilisation

Correspondance de modèle de base

Point (.) comme espace réservé pour tout caractère unique

  • c.at : Correspondance : « chat », « coat ». Ne correspond PAS à : « cat », « cheat »

  • wa.ter : Correspondance : « waiter », « waster ». Ne correspond PAS à : « water »

  • s.ip : Correspondance : « skip », « ship », « slip ». Ne correspond PAS à : « sip », « strip »

Quantifiers

? - Zéro ou une occurrence

  • colou?r : Correspondance : « color », « colour »

  • g?rain : Correspondance : « grain », « rain »

  • books? : Correspondance : « book », « books »

.* - N'importe quel nombre de caractère (y compris aucun)

  • h.*y : Correspondance : « happy », « history », « honey »

  • sa.*d : Correspondance : « sad », « sand », « satisfied »

  • m.*ing : Correspondance : « morning », « meeting », « marketing »

.+ - Au moins un caractère doit apparaître

  • pa.+er : Correspondance : « paper », « painter »

  • a.+ed : Correspondance : « asked », « accepted », « allowed »

* - Zéro occurrence ou plus

  • go*al : Correspondance : « goal », « goooooooal »

+ - Une ou plusieurs occurrences

  • no+ : Correspondances : « no », « noooooo »

  • $1+ : Correspondances : « $1 », « $11 », « $111 »

Il est recommandé d'utiliser un motif aussi spécifique que possible car les motifs ouverts peuvent causer des problèmes de performance dans l'éditeur.

Important

L'éditeur dispose d'une limite intégrée sur la complexité d'un motif regex. Les motifs trop larges ou utilisant intensivement des caractères génériques peuvent échouer en tant que regex invalide. Pour éviter cela :

  • Gardez les motifs courts et spécifiques. error-[0-9]\{3\} convient ; .*a.*b.*c.*d.* ne convient pas.

  • Minimisez les caractères génériques. Chaque .+ ou .* multiplie la complexité interne. Privilégiez les classes de caractère comme [A-Z]+ plutôt que .* lorsque cela est possible.

  • Évitez les longues alternances avec répétition. Un motif comme (word1|word2|...|word20){2,} peut dépasser rapidement la limite. Ceci est amplifié lorsque les alternatives incluent plusieurs mots ou de la ponctuation, ce qui ajoute à la complexité de la regex.

  • Ancrez un côté lorsque cela est possible. ^prefix.* est bien moins coûteux que .*middle.*.

Si le motif est rejeté, essayez de le rendre plus ciblé : commencez par un préfixe fixe plus long et affinez à partir de là. Envisagez de réduire le nombre d'alternatives ou de les traiter dans des motifs séparés au lieu de combiner tout dans une regex complexe.

Exemple :

Filtrage pour les adresses e-mail :

  • Ce motif trouvera une correspondance avec les espaces et tous les mots environnants avec potentiellement trop de résultats : .*@.*

  • Pour limiter les résultats à toutes les adresses e-mail : [\\w.+\\-]+@[\\w.+\\-]+

  • Pour limiter les résultats aux e-mails .com uniquement : [\\w.+\\-]+@[\\w.+\\-]\\.com

  • Pour limiter les résultats à ceux ayant un chiffre dans les adresses e-mail : [\\w.+\\-]*\\d+[\\w.+\\-]*@[\\w.\\-]+

Alternances (opérateur OU)

  • cat|dog : Correspond à : « cat » et « dog »

  • red|blue|green : Correspond à : « red », « blue », « green »

Classes de caractère et plages

  • [A-Z]+ : Correspond à une ou plusieurs lettres majuscules à la suite (une séquence).

  • [A-Z]{2,} : Correspond à toute série de lettres majuscules (utile par ex. pour la correspondance d'acronymes ou de Strings écrits en lettres majuscules)

  • [0-9]\{4\} : Correspond aux nombres à quatre chiffres, par ex. « 1999 », « 2003 », « 1876 » (également trouvé au sein d'une chaîne plus longue que quatre chiffres ; pour limiter les résultats, l'option de correspondance de mots prévue pour le futur devra être utilisée)

  • [A-Za-z0-9]+ : Correspond à toute chaîne alphanumérique (hello! → hello correspondrait, mais ! ne fait pas partie de [A-Za-z0-9] ; 100% → seul 100 correspondrait)

  • ([A-Za-z]+\\d+|\\d+[A-Za-z]+) : Correspond strictement à une combinaison de chiffres et de lettres, par ex. « user123 », « Admin99 », « Win11 », « 5g », « 1080p »

  • [0-9]{2,4}-[A-Z]{2,3} : Correspond aux plaques d'immatriculation, par ex. « 12-XY », « 9999-ABC »

Échappement des caractères réservés . ? * { } [ ] ( ) \" \\

  • \\+[0-9]{1,2} : Correspond à « +40 », « +1 »

  • \\{version: [0-9]+\\} : Correspond à « {version: 12} », « {version: 13} »

  • C:\\\\[A-Za-z]+ : Correspond à « C:\\Users », C:\\Documents, « C:\\Desktop »

Filtrage insensible à la casse VS sensible à la casse

  • Par défaut, le filtrage par regex sera implémenté comme insensible à la casse. c.at : Correspond à : « chat », « Chat », « CHAT » et « coat », « Coat », « COAT »

  • Le filtrage par regex peut être combiné avec le filtre d'interface utilisateur Sensible à la casse

Groupes de capture

Les groupes de capture regex sont reconnus et la requête complète est mise en surbrillance, par ex. s(e)g mettra en surbrillance « seg ». Les groupes de capture peuvent être utilisés pour le Remplacer, par ex. « Name: Bob » peut être recherché par Name: (.*?) et remplacé en utilisant une référence arrière vers Jméno: $1 ». Les références arrière manquantes sont gérées correctement, c'est-à-dire que la requête Name: (.*?) avec le Remplacer Jméno: $1, Title: $2 sera remplacée par Jméno: Bob, Title: $2.

Exemples pour le Remplacer par référence arrière :

  • filtre (\\d+),(\\d+) et Remplacer $1.$2 pour normaliser les séparateurs décimaux (par ex. de 5,6 ou 35,949 à 5.6 ou 35.949)

  • filtre (\\d+)\\.(\\d+) et Remplacer $1,$2 pour normaliser les séparateurs décimaux (par ex. de 5.6 ou 35.949 à 5,6 ou 35,949)

  • filtre (\\d\{4\})-(\\d\{2\})-(\\d\{2\}) et Remplacer $3/$2/$1 pour reformater la date (par ex. de 2025-06-05 à 05/06/2025)

  • filtre Identifiant-(\\d{3,}) et Remplacer Ticket #$1 pour extraire le numéro du ticket (par ex. de Identifiant-45321 à Ticket #45321)

  • filtre (cat|dog) et Remplacer $1-$1 pour Dupliquer le texte correspondant (par ex. de cat à cat-cat et de dog à dog-dog)

  • Groupe optionnel : filtre Hello(, (\\w+))? et Remplacer Hi $1 pour transformer les salutations en remplaçant « Hello » avant les noms ou seul (par ex. de Hello, John à Hi John et de Hello à Hi)

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.