expresión regular:buscar y reemplazar cada partido
-
10-07-2019 - |
Pregunta
Necesito cambiar los elementos que rodean a algunos de los contenidos en una cadena, dejando el contenido como es.Lo estoy haciendo con una expresión regular, pero cuando me reemplazar mediante el parámetro de posición ($1), sólo se utiliza el primer partido.
Por ejemplo, si tengo esta cadena:
<strong>I want</strong> to change <i>this</i> text,
but <u>I can't</u>. <div class="question">Why?</div>.
Quiero cambiar a:
<strong>I want</strong> to change <i>this</i> text,
but <u>I can't</u>. <div class="question">Why?</div>.
Pero sólo puedo conseguir esto:
<strong>I want<strong> to change <strong>this<strong> text,
but <strong>I can't<strong>. <strong>Why?<strong>.
Estoy usando la siguiente expresión regular:
\x26lt;(.*?)\x26gt;
(a nivel mundial, y reemplazarlo con "<$1>
")
Supongo que el problema es que no puedo decir cuántos partidos se encuentran, y cómo se refieren a cada uno de ellos.Tal vez en Perl que podría haber utilizado $+, pero que no está funcionando.Estoy haciendo esto con el regex módulo de Yahoo Pipes.Debe ser muy similar a PHP implemenations, afaik.
¿Cómo puedo utilizar cada partido por separado en Yahoo Pipes?
Solución
Podría ser más fácil de reemplazar la <
y el >
de forma independiente.De esa manera se convierte en un simplemente buscar-reemplazar que no tenga que usar referencias.
Otros consejos
Debería poder hacer una sola operación si marca la casilla g
, como en esta captura de pantalla ...:
(fuente: aleax.it )