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

我得到了这个正则expression式的错误..

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

错误

警告 :preg_replace():未知修饰语'g'in ….

为什么?

g是用preg_replace()隐含的,你不需要包含它。

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

限制
每个主题string中每个模式的最大可能replace。 默认为-1 (没有限制)。

所以,除非你为这个参数指定一个正数,否则它将默认取代所有的事件:

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