1

我需要更改围绕字符串中某些内容的元素,使内容保持原样。我正在使用正则表达式进行操作,但是当我使用位置参数 ($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 中分别使用每个匹配项?

4

2 回答 2

3

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

于 2009-08-03T04:14:07.213 回答
0

如果您选中复选框,您应该能够执行单个操作g,就像在这个屏幕截图中一样......:( 来源:aleax.it截屏

于 2009-08-03T04:43:46.503 回答