|match

O filtro|match usa uma expressão regular [1] para exibir um padrão presente na tag, ou nada, se ausente.

  • Apparu en : SPIP 1.4

Exemplos

Recuperar a primeira palavra do título

[(#TITRE|match{^\w+?})]

 

Exibir "toto" se estiver presente no título

[(#TITRE|match{toto})]

 

Pode-se passar 3 argumentos a este filtro

  1. o padrão (ou «pattern»): ex. ^a encontrar$ ;
  2. as opções (ou modificadores): ex. Uims ;
  3. o número de parênteses envolventes (por padrão, a totalidade do padrão).

Mas também é permitido apenas passar 2 argumentos: o padrão e o número de parênteses envolventes (ex. #BALISE|match{toto_(\d+)$, 1} que apenas devolverá o(s) dígito(s) final(ais) que são diretamente precedidos pela palavra ’toto_’).#

Dica:
Se não for possível declarar uma classe de caracteres como argumento do filtro: |match{[a-zA-Z]+} produzirá um erro de compilação devida à presença de parênteses rectos [ e ], no entanto, é possível escrever expressões regulares complexas utilizando classes de caracteres, definindo-as previamente:

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

 

Atenção :
O filtro |match devolverá, caso exista, apenas a primeira ocorrência encontrada (e não uma matriz de todas as ocorrências).


Ver também

Notas

[1não hesite em consultar a página da wikipedia dedicada: Expressão regular

Autor Ricardo Porto Publié le : Mis à jour : 14/02/25

Traductions : català, English, Español, français, Nederlands, Português