2011-10-24 49 views
0

我的字符串是在這裏:正則表達式 - 懶人模式不工作

<li>super strona <em>{cena:100 zł netto}</em></li><li>foo strona <em>{cena:101 zł netto}</em></li></ul></p><h3>Strona super {cena:101 zł netto}</h3> 

..和我想用正則表達式來此進行更改:

<li>super strona <em>100 zł netto</em></li><li>foo strona <em>101 zł netto</em></li></ul></p><h3>Strona super 101 zł netto</h3> 

我試圖做這種方式: 搜索:{cena:(.*?)} 替換:\1

但它無法正常工作。這是一個效果:

<li>super strona <em>100 zł netto}</em></li><li>foo strona <em>{cena:101 zł netto</em></li></ul></p><h3>Strona super 101 zł netto</h3> 

要替換文本我使用PHP的ereg_replace()函數。

你對此有什麼想法嗎?

+4

作爲一般建議,請使用preg而不是ereg。 –

回答

2

試試這樣說:

$text = preg_replace('#\{cena:([^\}]*)\}#', '\\1', $text); 

你需要逃避{},因爲它們是正則表達式中quantors的一部分。我也建議不要使用ereg*函數,因爲它們已被證明非常緩慢。

0
\{cena:[^\}]*\} 

嘗試用上面的正則表達式替換,看看是否有幫助。