El filtro |match
utiliza una expresión regular [1] para mostrar un patrón presente en la baliza, o nada si no está presente.
Por ejemplo:
Recuperar la primera palabra del título [(#TITRE|match{^\w+?})]
;
Mostrar "toto" si está presente en el título: [(#TITRE|match{toto})]
Es posible pasar 3 argumentos a este filtro:
El patrón (o «pattern»): ej. ^a buscar$
.
Las opciones (o modificadores): ej. Uims
.
El número de elementos a capturar (por defecto, el patrón completo).
No obstante, también se permite pasar solamente 2 argumentos: el patrón y el número de elementos a capturar (por ejemplo,
#BALISE|match{toto_(\d+)$, 1}
que sólo devolverá las cifras finales que estén directamente precedidas por la palabra ’toto_’).
Atención:
No es posible declarar una clase de caracteres como argumento del filtro: |match{[a-zA-Z]+}
provocará un error de compilación debido a la presencia de los corchetes [
y ]
.
No obstante, es posible escribir expresiones regulares complejas utilizando clases de caracteres definidas previamente:
#SET{mi_regexp, ^[[:space:]]*([0-9]+)([.)]|Â?°)[[:space:]]+}
[(#DESCRIPTIF|match{#GET{mi_regexp}, Uims, 1})]
Ver también: El filtro |replace