Désigner une valeur plutôt qu'écrire une expression régulière
Les pointeurs d'extraction — comment l'éditeur infère un motif, pourquoi il le teste sur vingt messages, et ce que RE2 refuse.
Quand extraction ne suffit pas — un identifiant maison, deux codes dans le même message, un jeton au format qui n’appartient qu’à vous — la réponse habituelle du secteur est de vous renvoyer écrire une expression régulière dans votre suite de tests. C’est exactement la compétence dont l’outil était censé vous dispenser.
Ici : vous désignez la valeur dans un vrai message, la plateforme écrit le motif.
Le geste
Dans la vue inbox, ouvrez un message et sélectionnez la valeur qui vous intéresse. L’éditeur propose plusieurs motifs, classés, chacun avec sa raison. Vous en choisissez un, vous le nommez, vous l’enregistrez.
Le pointeur s’applique ensuite à chaque nouveau message de l’inbox, et vous le relisez sous sa clé :
message.extract.codeCommande;
Les cinq stratégies proposées
| Stratégie | Ce qu’elle produit | Quand elle gagne |
|---|---|---|
shape | \b(\d{6})\b | La forme est unique dans le message |
context | ancrage sur les mots qui précèdent | Le défaut recommandé — survit à une refonte de la mise en page |
context-strict | ancrage sur quatre mots | Plusieurs valeurs de même forme |
loose | \b(\d{5,7})\b | L’émetteur supprime parfois les zéros initiaux |
literal | la valeur exacte | Une chaîne qui ne change jamais |
Le classement n’est pas cosmétique : les motifs qui capturent exactement la sélection, et une seule fois, passent devant.
context est recommandé parce qu’il s’ancre sur les derniers mots littéraux qui
précèdent la valeur. Une mise en page change souvent ; « votre code de confirmation
est » beaucoup moins.
Le motif est testé sur vingt messages, pas sur celui que vous regardez
Avant l’enregistrement, le motif est confronté aux vingt derniers messages de l’inbox, et l’éditeur affiche combien donnent exactement une capture.
Un motif qui fonctionne sur le message sous vos yeux et échoue sur les dix précédents est précisément celui qui cassera une intégration continue à trois heures du matin.
L’aperçu utilise le moteur de production
Le test et l’aperçu sont exécutés par le service d’ingestion lui-même, pas par le navigateur ni par l’API. Si l’éditeur validait avec les expressions régulières de JavaScript pendant que l’ingestion utilise celles de Go, vous verriez une coche verte sur un motif qui se comporte autrement en production — le pire genre de défaut, puisqu’on vous a montré que tout allait bien.
Ce que RE2 refuse, et pourquoi c’est une bonne nouvelle
Le moteur est RE2 : temps linéaire, aucun retour sur trace. Un motif écrit par un client ne peut donc pas bloquer l’ingestion — la vôtre comme celle des autres.
La contrepartie est réelle et l’éditeur l’annonce plutôt que de laisser enregistrer un motif qui ne compilera jamais :
- pas d’anticipation
(?=…)ni(?!…); - pas de référence arrière
\1.
Presque tout ce qu’une anticipation servirait à faire ici se réécrit en ancrant sur le
contexte, ce que context fait déjà.
Le mode avancé
Le champ du motif reste éditable. Ce que vous y écrivez est validé de la même façon — compilation par RE2, puis passage sur les vingt derniers messages. Il n’y a pas de chemin qui contourne la vérification.