|match

Le filtre|match utilise une expression rationnelle [1] pour afficher un motif présent dans la balise, ou rien si absent.

  • Apparu en : SPIP 1.4

Exemples

Récupérer le premier mot du titre

[(#TITRE|match{^\w+?})]

 

Afficher "toto" si présent dans le titre

[(#TITRE|match{toto})]

 

Il est possible de passer 3 arguments à ce filtre

  1. le motif (ou « pattern ») : ex. ^a trouver$ ;
  2. les options (ou modificateurs) : ex. Uims ;
  3. le numéro de parenthèse capturante (par défaut l’intégralité du motif).

Mais il est aussi permis de ne passer que 2 arguments : le motif et le numéro de parenthèse capturante (ex. #BALISE|match{toto_(\d+)$, 1} qui ne retournera que le ou les chiffres finaux qui sont directement précédés par le mot ’toto_’).

Astuce :
S’il n’est pas possible de déclarer une classe de caractères comme argument du filtre : |match{[a-zA-Z]+} produira une erreur de compilation due à la présence des crochets [ et ], il est néanmoins possible d’écrire des regexp complexes utilisant les classes de caractères en les définissant préalablement :

#SET{ma_regexp, ^[[:space:]]*([0-9]+)([.)]|Â?°)[[:space:]]+}
[(#DESCRIPTIF|match{#GET{ma_regexp}, Uims, 1})]

 

Attention :
Le filtre |match ne retournera, si elle existe, que la première occurrence rencontrée (et pas un tableau de toutes les occurrences).


Voir aussi

Notes

[1ne pas hésiter à consulter la page wikipedia dédiée : Expression_rationnelle

Auteur denisb, Teddy Publié le : Mis à jour : 22/07/23

Traductions : català, English, Español, français, Nederlands