expressão regular: localizar e substituir cada partida
-
10-07-2019 - |
Pergunta
Eu preciso alterar os elementos que cercam alguns conteúdos em uma corda, deixando o conteúdo como é. Eu estou fazendo isso com uma expressão regular, mas quando eu substituir usando o parâmetro posicional ($ 1), que utiliza apenas o primeiro jogo.
Por exemplo, se eu tenho essa string:
<strong>I want</strong> to change <i>this</i> text,
but <u>I can't</u>. <div class="question">Why?</div>.
Eu quero mudá-lo para:
<strong>I want</strong> to change <i>this</i> text,
but <u>I can't</u>. <div class="question">Why?</div>.
Mas eu só pode obter esta:
<strong>I want<strong> to change <strong>this<strong> text,
but <strong>I can't<strong>. <strong>Why?<strong>.
Eu estou usando o seguinte regex:
\x26lt;(.*?)\x26gt;
(globalmente, e substituindo-o por "<$1>
")
Eu acho que o problema é que eu não posso te dizer quantas partidas serão encontrados, e como fazer referência a cada um. Talvez em Perl eu poderia ter usado $ +, mas que não está funcionando. Estou fazendo isso com o módulo de regex de Yahoo Pipes. Deve ser muito semelhante ao implemenations PHP, afaik.
Como posso usar cada jogo separadamente no Yahoo Pipes?
Solução
Pode ser mais fácil para substituir o <
eo >
independente. Dessa forma, torna-se um basta encontrar-substitua que não precisa usar back-referências.
Outras dicas
Você deve ser capaz de fazer uma única operação se você marcar a caixa de seleção g
, como neste screenshot ...:
(fonte: aleax.it )