|replace

O filtro |replace usa uma expressão regular [1] para excluir ou substituir todas as ocorrências de um padrão na tag.

  • Apparu en : SPIP 1.4

Exemplos

Usado com um único parâmetro, uma expressão regular excluirá o padrão.

Para excluir todas as "notaXX" do texto

[(#TEXTE|replace{nota\d*})]

 

Quando um segundo parâmetro é fornecido, as ocorrências do padrão serão substituidas por esse valor.
Por exemplo, para substituir todos os «2005» ou «2006» do texto por «2007» :

[(#TEXTE|replace{200(5|6), 2007})]

 

Os argumentos do filtro podem só ser textos simples:
substituir todos «ao invés de» par «em vez de» :

[(#TEXTE|replace{ao invés de, em vez de})]

 

É possível capturar valores na expressão regular como 1º argumento, e o 2º argumento pode referir-se aos valores capturados.
Exemplo para extrair o nome de um ficheiro a partir do seu caminho completo:

[(#FILE|replace{^.*/\(\[^/\]*\)$,$1})]

Um terceiro parâmetro corresponde às opções (ou modificadores) a aplicar à regexp :

[(#TEXTE|replace{^isto$, aquilo, UimsS})]

O valor padrão deste 3º parâmetro é UimsS.

Outros exemplos

Substituir os espaços de um título por traços:

[(#TITRE|replace{\h,-,S})]

 

Substituir tudo o que não for uma letra num título por um traço:

[(#TITRE|replace{\P{L},-,S})]

 

Excluir o à (a com acento grave) de um título (note as aspas simples):

[(#TITRE|replace{\xe0,'',S})]

 

Excluir o ponto no fim de um título:

[(#TITRE|replace{\.$,'',S})]

 

Excluir as pontuações e os espaços inúteis e colocar um traço :

[(#TITRE|replace{( |\p{P}|\h)+,-,S})]

 

Atenção :
Declarar uma classe de caracteres como argumento do filtro |replace{[0-9]+} produzirá um erro de compilação devido à presença dos parênteses rectos [ e ].
Para contornar este problema, é preciso escapar os parênteses rectos usando uma barra invertida "\", resultando em:

|replace{\[0-9\]+}

Ver também

Notas

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

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

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