警告:preg_replace():未知修饰符“g”


Warning: preg_replace(): Unknown modifier 'g'

我被这个正则表达式弄错了...

$strTmp = preg_replace('~(<'/CharacterStyleRange>(.*?)'n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);

错误

警告:preg_replace(): ...中的修饰符"g"未知。

为什么?

g

含在preg_replace() 中。您不需要包含它。

您不必指定全局标志。从文档中,有一个单独的参数($limit)用于指定要进行的替换次数:

限制 每个主题字符串中每个模式的最大可能替换数。默认值为 -1(无限制)。

因此,除非您为此参数指定正数,否则默认情况下它将替换所有匹配项:

$strTmp = preg_replace('~(<'/CharacterStyleRange>(.*?)'n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);

您要替换的字符串中的字母 G 之前有一个/