这个正则表达式出错了。
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);
错误
警告:preg_replace():....中的未知修饰符'g'
为什么?
答案 0 :(得分:136)
g
隐含preg_replace()
,您不需要包含它。
答案 1 :(得分:36)
您不必指定全局标志。从documentation开始,有一个单独的参数($limit
)用于指定要进行的替换次数:
<强>限制强>
每个主题字符串中每个模式的最大可能替换。默认为 -1 (无限制)。
因此,除非您为此参数指定正数,否则它将默认替换所有匹配项:
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
答案 2 :(得分:-1)
在替换
的字符串中有一个/之前的字母G.