[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



June 2010 — updated on : February 2011

All the versions of this article:

The |match filter uses a regular expression [1] to display a pattern existing in the tag, or nothing if that pattern is absent.

For example:
retrieve the first word from the title: [(#TITRE|match{^\w+?})] ;
display "toto" if that phrase appears in the title: [(#TITRE|match{toto})]

It is possible to pass 3 arguments to this filter:
the "pattern"): e.g. ^to be found$;
the options (or modifiers): e.g. Uims;
the number of surrounding parentheses (by default, all of the pattern).

But is is also permitted to pass only 2 arguments: the pattern and the number of surrounding parentheses (e.g. #BALISE|match{toto_(\d+)$, 1} which will return only the final digit(s) that directly precede the word ’toto_’).

It is not possible to declare a class of characters as an argument to the filter: |replace{[0-9]+} will generate a compile error because of the existence of the [ and ] brackets,
It is however still possible to write complex regexps that use character classes if you define them separately beforehand:

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

See also: the |replace filter.


[1Please also reference the Wikipedia page: Regular_expression

Show the template of this page Site powered by SPIP | Translation area | Private area