Aller au contenu
Facteur

Tapez au moins deux caractères.

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

  1. Dans Messages, ouvrez un message qui contient la valeur.
  2. Choisissez la partie à lire : Texte, HTML ou Sujet.
  3. Sélectionnez la valeur à la souris. L'éditeur propose jusqu'à cinq motifs, ceux qui capturent exactement votre sélection en premier.
  4. 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é.