SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Télécharger

|match

Septembre 2009 — mis à jour le : Novembre 2013

Toutes les versions de cet article :


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

Par exemple :
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 :
le motif (ou « pattern ») : ex. ^a trouver$ ;
les options (ou modificateurs) : ex. Uims ;
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).


À lire aussi : le filtre |replace

Notes

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


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé