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?

Foi útil?

Solução

Pode ser mais fácil para substituir o &lt; eo &gt; 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 ...: Captura de tela
(fonte: aleax.it )

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top