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


79

这个正则表达式出现错误...

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

错误

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

为什么?

Answers:


162

g与隐式关联preg_replace()。您不需要包括它。


44

您不必指定全局标志。从文档,有一个单独的参数($limit用于指定替代做出的数量):

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

因此,除非您为此参数指定一个正数,否则默认情况下它将替换所有出现的数:

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

-2

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


这对我来说就是个错误“ Glasshouse Images / Getty Images”我的猜测是preg_认为这是一个逃逸字符
Cparello
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.