Extraire une valeur sans écrire d'expression régulière
Sélectionnez la valeur dans un vrai message, Facteur propose le motif et l'essaie sur vos vingt derniers messages.
Un pointeur extrait une valeur que Extraction ne trouve pas seule : un identifiant maison, un jeton dans un format qui n'appartient qu'à vous, ou l'un de deux codes présents dans le même message.
Vous n'écrivez pas d'expression régulière. Vous sélectionnez la valeur dans un vrai message, et Facteur propose le motif.
Créer un pointeur
- Dans Messages, ouvrez un message qui contient la valeur.
- Choisissez la partie à lire : Texte, HTML ou Sujet.
- Sélectionnez la valeur à la souris. L'éditeur propose jusqu'à cinq motifs, ceux qui capturent exactement votre sélection en premier.
- Choisissez un motif, donnez une clé (par exemple
codeCommande), enregistrez.
La clé commence par une lettre, ne contient que des lettres, des chiffres et _, et
compte 40 caractères au plus. Elle est unique dans l'inbox.
Le pointeur s'applique ensuite à chaque nouveau message de l'inbox. Les messages déjà reçus ne changent pas. Vous lisez la valeur sous la clé que vous avez nommée :
message.extract.codeCommande;
Les pointeurs sont aussi affichés dans la liste des messages, et se copient d'un clic.
Choisir la stratégie
Les motifs ci-dessous sont ceux qu'on obtient pour un code à six chiffres.
| Stratégie | Le motif obtenu | Quand la choisir |
|---|---|---|
Selon le texte qui précède (context) |
ancrage sur les deux mots qui précèdent | Le choix le plus sûr. Survit à une refonte de la mise en page |
Selon le texte autour (context-strict) |
ancrage sur quatre mots | Le message contient plusieurs valeurs de même forme |
Selon la forme de la valeur (shape) |
\b(\d{6})\b |
La forme est unique dans le message |
Tolérant (loose) |
\b(\d{5,7})\b |
L'émetteur supprime parfois les zéros initiaux |
Cette valeur exacte (literal) |
la valeur elle-même | Une chaîne qui ne change jamais |
Prenez le texte qui précède si vous hésitez : il s'ancre sur les derniers mots avant la valeur. Une mise en page change souvent, « votre code de confirmation est » beaucoup moins.
Lire le résultat de l'essai avant d'enregistrer
Avant l'enregistrement, l'éditeur essaie le motif sur les vingt derniers messages de l'inbox et affiche combien donnent exactement une valeur. Lisez ce nombre : un motif qui fonctionne sur le message sous vos yeux et échoue sur les dix précédents est celui qui cassera votre intégration continue à trois heures du matin.
Quand le motif trouve plusieurs valeurs dans un message, seule la première est gardée à la réception, et l'essai ne compte pas ce message comme réussi.
Le bouton d'enregistrement reste inactif tant que l'essai du motif affiché n'est pas revenu et valide. L'essai et la réception utilisent le même moteur, donc la coche de l'éditeur et le comportement réel ne divergent pas.
Ce que le moteur refuse
Le moteur refuse ce que RE2 ne sait pas faire. Ces constructions n'existent pas, et l'éditeur vous le dit avant d'enregistrer plutôt qu'à la première réception :
- les anticipations
(?=…)et(?!…), et les assertions arrière(?<=…)et(?<!…); - la référence arrière
\1; - les quantificateurs possessifs, les groupes atomiques, la récursion et les sous-motifs conditionnels.
Presque tout ce que vous feriez avec une anticipation se réécrit en ancrant sur le contexte, ce que le choix « selon le texte qui précède » fait déjà. Un motif fait 512 caractères au plus, et un motif dont l'évaluation dure trop longtemps ne capture rien, sans jamais faire perdre le message.
Écrire le motif à la main
L'éditeur propose Écrire le motif à la main si vous préférez. Ce que vous y mettez passe la même vérification : refus des constructions ci-dessus, puis essai sur vos vingt derniers messages. Aucun chemin ne contourne l'essai.
Supprimer un pointeur
Sous un message ouvert, la liste Pointeurs de cette inbox montre chaque pointeur avec sa valeur sur le message le plus récent. Le bouton Supprimer retire le pointeur : les nouveaux messages ne portent plus sa clé.