Preg_replace 特殊字符 &
Preg_replace special characters &
下午好,
我的 preg_replace 有错误。我想用 &
替换 &&
,用 ?
.
替换 ?&
我的代码如下所示:
$reg = preg_replace("#\&\&#is", "&
", $reg);
$reg = preg_replace("#\?\&#is", "?
", $reg);
你能帮我解决这个问题吗?我敢肯定,这是一些基本错误,对此深感抱歉...
谢谢!
你不需要转义 &
只需要 ?
$reg = preg_replace("#&&#", "&", $reg);
$reg = preg_replace("#\?&#", "?", $reg);
您可以将两个正则表达式简化为一个。
echo preg_replace("#([?&])\s*&#", "", ' ? &lang=en');
输出:
?lang=en
您的修饰符没有意义,因为您没有使用字母字符或 .
。
此外 &
不是特殊的正则表达式字符,只是 ?
。如果在字符 class ([]
) 中,两者都不需要替换。
Regex101 演示:https://regex101.com/r/iS4mQ0/1
下午好,
我的 preg_replace 有错误。我想用 &
替换 &&
,用 ?
.
?&
我的代码如下所示:
$reg = preg_replace("#\&\&#is", "&
", $reg);
$reg = preg_replace("#\?\&#is", "?
", $reg);
你能帮我解决这个问题吗?我敢肯定,这是一些基本错误,对此深感抱歉...
谢谢!
你不需要转义 &
只需要 ?
$reg = preg_replace("#&&#", "&", $reg);
$reg = preg_replace("#\?&#", "?", $reg);
您可以将两个正则表达式简化为一个。
echo preg_replace("#([?&])\s*&#", "", ' ? &lang=en');
输出:
?lang=en
您的修饰符没有意义,因为您没有使用字母字符或 .
。
此外 &
不是特殊的正则表达式字符,只是 ?
。如果在字符 class ([]
) 中,两者都不需要替换。
Regex101 演示:https://regex101.com/r/iS4mQ0/1