警告:preg_replace():未知的修饰符'g'

Foo*_*ing 65 php regex

这个正则表达式我得到了一个错误..

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);
Run Code Online (Sandbox Code Playgroud)

错误

警告:preg_replace():未知的修饰符'g'在....

为什么?

rid*_*rid 144

g隐含着preg_replace(),你不需要包含它.


p.s*_*w.g 39

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

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

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

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
Run Code Online (Sandbox Code Playgroud)