【发布时间】:2013-05-04 21:15:44
【问题描述】:
我有以下 ereg_replace 语句:
ereg_replace ( ".*alternative0=\"[^\"]*\"[ ]{0,10}>", "", $v );
由于ereg_replace 已弃用,我想将其升级到preg_replace,并且我还想升级我的代码,以便只替换第一次出现的代码。
preg_replace ("/.*alternative0=\".*?\".*>/", "", $v,1 );
但它似乎部分工作。
主要问题是当我在 " 和 > 之间有空格时,我的 preg 不起作用
这里有一些我想更改的示例字符串:
<tag type="head" alternative0="not head">{!head!}</tag>
<tag type="tail" alternative0="tail>{!not tail!}</tag>
但也可能是:
<tag type="head" alternative0="not head">{!
xxxx !}</tag>
甚至:
<tag type="header" alternative0="not head " > {! blah bla !}</tag>
【问题讨论】:
-
提示:首先转换。确保它像以前一样工作。然后询问关于匹配计数的(新)正则表达式问题的第二个问题。
-
也许提供一些示例字符串,您希望与您的模式匹配,因为您正在将模式的行为从
"[^\"]*"[ ]{0,10}转换并稍微更改为".*?".* -
也许有人可以向我解释什么是 preg 相当于 "[ ]{0,10}" 因为这似乎是我模式中的唯一问题。我编辑了帖子并添加了一些示例
标签: php preg-replace posix-ere