|match

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

Notas

[1no dudes en consultar la página dedicada al tema en la Wikipedia: Expresión_regular

Autor o autora David Sánchez Crespillo Publicado el: Actualizado: 26/10/12

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