我需要更改字符串中某些内容的元素,将内容保留为原样。我正在使用正则表达式,但是当我使用位置参数($ 1)替换它时,它只使用第一个匹配。

例如,如果我有这个字符串:

<strong>I want</strong> to change <i>this</i> text, 
but <u>I can't</u>. <div class="question">Why?</div>.

我想将其更改为:

<strong>I want</strong> to change <i>this</i> text, 
but <u>I can't</u>. <div class="question">Why?</div>.

但我只能得到这个:

<strong>I want<strong> to change <strong>this<strong> text, 
but <strong>I can't<strong>. <strong>Why?<strong>.

我正在使用以下正则表达式:

\x26lt;(.*?)\x26gt;

(全局,并将其替换为<!>“; <$1> <!>”;)

我想问题是我不知道会找到多少匹配,以及如何引用每一个匹配。也许在Perl中我可以使用$ +,但这不起作用。我正在使用Yahoo Pipes的正则表达式模块执行此操作。它应该与PHP实现非常类似,afaik。

如何在Yahoo Pipes中单独使用每个匹配?

有帮助吗?

解决方案

单独更换&lt;&gt;可能更容易。这样它就变成了一个简单的find-replace,不需要使用反向引用。

其他提示

如果您选中g复选框,则可以执行单个操作,如此屏幕截图中所示...: 结果 (来源: aleax.it

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top