我得到这个正则表达式的错误......
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);
错误
警告:preg_replace(): Unknown modifier 'g' in ....
为什么?
g
是隐含的preg_replace()
。你不需要包括它。
您不必指定全局标志。从文档中,有一个单独的参数 ( $limit
) 用于指定要进行的替换次数:
limit 每个主题字符串中每个模式的最大可能替换。默认为-1(无限制)。
因此,除非您为此参数指定一个正数,否则它将默认替换所有出现:
$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
/
您要替换的字符串中的字母 G 之前有一个。