下午好,
我的preg_replace出错了。我想将&&
仅替换为&
,将?&
替换为?
。
我的代码如下所示:
$reg = preg_replace("#\&\&#is", "&
", $reg);
$reg = preg_replace("#\?\&#is", "?
", $reg);
你可以帮我解决这个问题吗?我确定,这是一个基本错误,对不起......
谢谢!
答案 0 :(得分:4)
您无需仅&
?
$reg = preg_replace("#&&#", "&", $reg);
$reg = preg_replace("#\?&#", "?", $reg);
答案 1 :(得分:1)
您可以将两个正则表达式简化为一个。
echo preg_replace("#([?&])\s*&#", "$1", ' ? &lang=en');
输出:
?lang=en
由于您没有使用字母字符或.
,因此您的修饰符没有意义。
同样&
不是特殊的正则表达式字符,只是?
。如果在字符类([]
)中,则不需要替换它。
Regex101演示:https://regex101.com/r/iS4mQ0/1