警告:preg_replace():未知修饰符“g”
Posted
技术标签:
【中文标题】警告:preg_replace():未知修饰符“g”【英文标题】:Warning: preg_replace(): Unknown modifier 'g' 【发布时间】:2013-10-04 08:34:57 【问题描述】:这个正则表达式出错了...
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);
错误
警告:preg_replace(): Unknown modifier 'g' in ....
为什么?
【问题讨论】:
【参考方案1】:g
隐含在 preg_replace()
中。你不需要包含它。
【讨论】:
请参阅the other good answer 了解更多背景信息。【参考方案2】:您不必指定全局标志。从 the documentation 开始,有一个单独的参数 ($limit
) 用于指定要进行的替换次数:
限制 每个主题字符串中每个模式的最大可能替换。默认为 -1(无限制)。
所以,除非你为这个参数指定一个正数,否则它会默认替换所有出现的:
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
【讨论】:
【参考方案3】:在您要替换的字符串中的字母 G 之前有一个 /
。
【讨论】:
这只是为我抛出了那个错误“Glasshouse Images/Getty Images”我的猜测是 preg_ 认为这是一个转义字符以上是关于警告:preg_replace():未知修饰符“g”的主要内容,如果未能解决你的问题,请参考以下文章
我在字符串上有几个 preg_replace 未知修饰符警告,但我不知道正则表达式修复 [重复]