如何用什么来代替“{* foo *}”?

时间:2010-12-04 13:14:38

标签: php regex replace

我想替换所有以“{”开头并以“}结尾”的文字,包括“{”和“}”。他们之间的文字可能是任何东西=( 我想我需要在那里使用正则表达式。

让我们假设$ this->输出是我要替换的字符串。所以我到目前为止......顺便说一句,它不起作用。 =(

$this->output = preg_replace( '/{*(.*)*}/', $this->output, $this->output );

3 个答案:

答案 0 :(得分:3)

您需要转义*

'/{\*(.*)\*}/'

否则*被解释为quantifier。此外,要使.*尽可能不匹配,请使*量词不情愿:

'/{\*(.*?)\*}/'

答案 1 :(得分:1)

请问与{foo} {[^}]*}匹配的问题文本,{匹配} / {*foo*}中的任何内容。

请求匹配{\*.*?\*}{*的主题匹配*} / {*foo*}中的任何内容。要仅匹配{* foo {*foo*}中的{\*((?!{\*).)*?\*},请使用{{1}}。

答案 2 :(得分:0)

你要找的东西有点不清楚所以我会解决这两种情况。

要替换{ foo }中的foo,请使用正则表达式:

/{\*([^}])*\*}/

要替换{ foo }中的 foo ,请使用正则表达式:

/{([^}])*}/