Php 警告:preg_replace():未知修饰符“g”

Php 警告:preg_replace():未知修饰符“g”,php,regex,Php,Regex,我发现这个正则表达式有一个错误 $strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp); 错误 警告:preg_replace:中的未知修饰符“g” 为什么?g在preg\u replace中是隐式的。您不需要包含它。您不必指定全局标志。从中,有一个单独的参数$limi

我发现这个正则表达式有一个错误

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

警告:preg_replace:中的未知修饰符“g”


为什么?

g在preg\u replace中是隐式的。您不需要包含它。

您不必指定全局标志。从中,有一个单独的参数$limit用于指定要进行的替换的数量:

极限 每个主题字符串中每个模式的最大可能替换。默认值为-1,没有限制

因此,除非为此参数指定正数,否则默认情况下,它将替换所有引用:

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

在您要替换的字符串中,字母G前面有a/。

这刚刚为我抛出了一个错误Glasshouse Images/Getty Images我猜是preg_uu将其视为转义字符