2009-08-03 112 views
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>. 

我m使用以下正則表達式:

\x26lt;(.*?)\x26gt; 

(全球範圍內,並以「<$1>」替換它)我想這個問題是我不能告訴多少場比賽會被發現,以及如何引用每一個。也許在Perl中,我可以使用$ +,但這不起作用。我正在用Yahoo Pipes的正則表達式模塊來做這件事。它應該與PHP實現afaik非常相似。

如何在Yahoo Pipes中分別使用每個匹配項?

回答

2

單獨更換&lt;&gt;可能會更容易。這樣它就成爲一個簡單的查找替換,不需要使用反向引用。

+0

我需要爲做兩遍?一個改變< s和另一個> s? (謝謝!) – 2009-08-03 04:18:40