Php preg_replace():未知修饰符';g';在里面

Php preg_replace():未知修饰符';g';在里面,php,mysql,preg-replace,Php,Mysql,Preg Replace,我得到这个错误: preg_replace():中的未知修饰符“g” 关于此代码: 在注释字段中,输出应该类似于 您必须在正则表达式的外部/分隔符内逃逸所有发生的/ 所以你可能正在寻找这个: preg_replace("/\\[img]([^\\[]*)\\[\/img]/", "<img src=\"\\1\" border=\"0\">", $text); preg\u replace(“/\\[img]([^\[]*)

我得到这个错误:

preg_replace():中的未知修饰符“g”

关于此代码:

在注释字段中,输出应该类似于



您必须在正则表达式的外部
/
分隔符内逃逸所有发生的
/

所以你可能正在寻找这个:

preg_replace("/\\[img]([^\\[]*)\\[\/img]/",
             "<img src=\"\\1\" border=\"0\">",
             $text); 
preg\u replace(“/\\[img]([^\[]*)\\[\/img]/”,
"",
$text);
否则,正则表达式引擎将把表达式视为在第二个
/
处终止:

/\\[img]([^\[]*)\\[/

以下内容将被视为表达式的修饰符。
i
m
确实存在,
g
不存在。这就是编译正则表达式时引发错误的原因


或者,您可以在
/
旁边使用另一个分隔符字符。但是,您必须确保该字符不会在表达式本身中出现而不被替换。如果表达式不是文本字符串,而是来自变量,则
preg_quote()
函数很方便。

只需使用不同的开始/结束正则表达式字符(例如:`):

$text=preg\u replace(“\\[img]([^\\[]*)\\[/img]`,”,“,$text);

这方面存在一些问题。您的目标是什么?看起来您可能试图用适当的
标记替换
[img]…[/img]
。未知修饰符错误是由于
[/img]
过早结束您的正则表达式。如果我们知道输入和预期输出,我们可以更有效地提供帮助。这是用于注释系统。当使用[img]如果你明白的话,我的英语不是很好,请原谅:punseived
/
表示regexp结束,给出了
i
m
g
的开关,
i
m
实际上都是有效的regexp开关,但是
g
不是请编辑上面的问题显示了输入和输出字符串的具体示例,如
[img]stuff[/img]
输出为
[img]http://google.com/img.png[/img] 
<img src="http://google.com/img.png"/>
preg_replace("/\\[img]([^\\[]*)\\[\/img]/",
             "<img src=\"\\1\" border=\"0\">",
             $text); 
$text = preg_replace("`\\[img]([^\\[]*)\\[/img]`","<img src=\"\\1\" border=\"0\">", $text);