Php preg_replace():未知修饰符';g';在里面
我得到这个错误: 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("/\\[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);