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édentes Révision précédente
Prochaine révision
Révision précédente
cold:tutoriaux:regex [2015/11/05 15:33]
florian
cold:tutoriaux:regex [2023/03/17 09:56] (Version actuelle)
Ligne 6: Ligne 6:
 ====== Capture ====== ====== Capture ======
  
-Les parenthèses ( ) de groupement permettent de délimiter un ensemble d'​alternatives et d'​opérer des captures.+Les parenthèses ​**( )** de groupement permettent de délimiter un ensemble d'​alternatives et d'​opérer des captures.
 Le plus souvent si nous réalisons une capture nous voudrons pouvoir y faire référence via un nom que nous aurons choisi. Le plus souvent si nous réalisons une capture nous voudrons pouvoir y faire référence via un nom que nous aurons choisi.
  
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 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>​]].\\
  
-Mais le plus souvent nous voudront surtout y faire référence lors d'un post formatage.\\ 
 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]|\n)*(?​P<​num>​\d+)
  
cold/tutoriaux/regex.1446737590.txt.gz · Dernière modification: 2023/03/17 09:56 (modification externe)