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