Het filter |match
gebruikt een regular expression (regexp) [1] om een doel in een tekst weer te geven wanneer dit aanwezig is.
Bijvoorbeeld:
- Selecteer het eerste woord van de titel: [(#TITRE|match{^\w+?})]
;
- Geef "toto" weer als dat in de titel staat: [(#TITRE|match{toto})]
.
Je kunt drie argumenten aan dit filter leveren:
- het doel (of «pattern»): bv. ^te vinden$
;
- de opties (of modifiers): bv. Uims
;
- het aantal keer (standaard het hele doel).
Maar je mag ook twee argumenten doorgeven: het doel en het aantal keer (bv. #BALISE|match{toto_(\d+)$, 1}
wat het cijfer of getal retourneert dat direct door het woord ’toto_’ wordt vooraf gegaan).
Tip :
Wanneer het niet mogelijk is een klasse van tekens te declareren als argument voor het filter, zal |match{[a-zA-Z]+}
een compilatiefout genereren door de aanwezigheid van de rechte haakjes [
en ]
,
Toch kun je complexe regexp schrijven door gebruik te maken van een tekenklasse door deze vooraf te declareren:
#SET{mijn_regexp, ^[[:space:]]*([0-9]+)([.)]|Â?°)[[:space:]]+}
[(#DESCRIPTIF|match{#GET{mijn_regexp}, Uims, 1})]
Let op :
Het filter |match
retourneert maximaal de eerste keer dat dat het doel wordt gevonden (en geen lijst van alle).
Lees ook het filter |replace
.