Outils pour utilisateurs

Outils du site


cold:tutoriaux:regex

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
cold:tutoriaux:regex [2015/11/19 15:24] – [Capture] floriancold:tutoriaux:regex [2025/09/15 15:11] (Version actuelle) – [Recherche multi-ligne] florian
Ligne 12: Ligne 12:
   (?P<nom_du_groupe_de_capture>...)   (?P<nom_du_groupe_de_capture>...)
  
-La sous-expression régulière (ici symbolisée par ...  ) qui aura été trouvée sera accessible par le nom **//nom_du_groupe_de_capture//**+La sous-expression rationnelle(ici symbolisée par ...  ) qui aura été trouvée sera accessible par le nom **//nom_du_groupe_de_capture//**
  
-Dès lors nous pouvons y faire référence dans la suite de l'expression régulière elle-même :+Dès lors nous pouvons y faire référence dans la suite de l'expression rationnelle elle-même :
   (?P=nom_du_groupe_de_capture)   (?P=nom_du_groupe_de_capture)
  
-Mais le plus souvent nous voudront surtout faire référence lors d'un post formatage.\\+Mais dans le cas de EzGED nous y ferons le plus souvent référence lors d'un post formatage grâce à la syntaxe [[cold:reference:groupname|@<groupname>]].\\ 
 Tout de suite un petit exemple.  Tout de suite un petit exemple. 
  
Ligne 43: Ligne 44:
   @keepdigits(@self)   @keepdigits(@self)
      
-Ce qui pourrait fonctionner si nous spécifions correctement la longueur du champ.+Mais dans notre exemple ci-dessus si la longueur du champ ou les paramétrage de positionnement sont trop laxistes nous avons le risque de récupérer aussi la référence client.
  
-Soit le filtre de champ suivant +Nous pouvons procéder autrement en capturant explicitement le premier numéro de la ligne: 
-  Numero de facture : (?P<numero>\d+)+  Numero de facture : (?P<numero>\d+)\D*
  
-Pour ne garder que le numero on fera ceci dans le champ post de formatage :+Le premier numéro est la première suite de chiffres non interrompue. Elle prend fin dès lors que l'on rencontre autre chose qu'un chiffre (comme un espace ou une lettre).
  
-  @caststr(@<numero>)+{{wiki:icons:info.png}} \D est équivalent à la séquence [^0-9]. Elle identifie tout caractère sauf un chiffre.
      
 ===== Recherche multi-ligne ===== ===== Recherche multi-ligne =====
Ligne 63: Ligne 64:
 Comme le montre la capture nous utilisons un champ de type variable et nous ciblons à l'aide des paramètres de position la zone de recherche. La zone de recherche est encadrée en rouge (l'image est tronquée, elle s'étend jusqu'au bas du document). Comme le montre la capture nous utilisons un champ de type variable et nous ciblons à l'aide des paramètres de position la zone de recherche. La zone de recherche est encadrée en rouge (l'image est tronquée, elle s'étend jusqu'au bas du document).
  
-Et l'expression régulière que nous utilisons est la suivante : +Et l'expression rationnelle que nous utilisons est la suivante : 
-  Facture N.([^\d]|\n)*(?P<num>\d+)+  Facture N.[^\d]*(?P<num>\d+)
  
 Décomposons l'expression. Décomposons l'expression.
Ligne 70: Ligne 71:
 ^ Expression ^ Signification ^ ^ Expression ^ Signification ^
 | Facture N. | Ce que l'on recherche commence par cette chaîne. Le point remplace le signe ° qui n'est pas bien géré. | | Facture N. | Ce que l'on recherche commence par cette chaîne. Le point remplace le signe ° qui n'est pas bien géré. |
-| %%([^\d]|\n)*%% | Ce qui suit doit être un caractère (excluant les chiffres) ou un retour à la ligne. Ce motif peut se répéter 0 ou plusieurs fois |+| %%[^\d]*%% | Ce qui suit doit être un caractère (excluant les chiffres) ou un retour à la ligne. Ce motif peut se répéter 0 ou plusieurs fois |
 | (?P<num>\d+) | On doit trouver au moins un chiffre. Cette suite de chiffre est capturée dans la variable num | | (?P<num>\d+) | On doit trouver au moins un chiffre. Cette suite de chiffre est capturée dans la variable num |
  
cold/tutoriaux/regex.1447946693.txt.gz · Dernière modification : (modification externe)