正则表达式 - 懒惰模式无法正常工作

时间:2011-10-24 12:32:53

标签: php regex

我的字符串在这里:

<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>

..我想用regexp改变它:

<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()函数。

你对此有任何想法吗?

2 个答案:

答案 0 :(得分:2)

试试这样:

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

您需要转义{},因为它们是正则表达式中的量子的一部分。我还建议不要使用ereg*函数,因为它们已被证明非常慢。

答案 1 :(得分:0)

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

尝试使用上面的正则表达式替换,看看它是否有帮助。