这是preg_replace(正则表达式)从字符串中删除?ajax = true或& ajax = true的正确语法吗?
echo preg_replace('/(\?|&)ajax=true/', '', $string);
所以例如/ hello / hi?ajax = true会给我/ hello / hi和/ hello / hi?ajax = true会给我/ hello / hi
我是否需要逃避&?
答案 0 :(得分:1)
你为什么不试试?
您无需逃避“&”。它不是正则表达式中的特殊字符。
你的表达应该正常,这是你正在使用的变化。但是如果你在交替中只有单个字符,那么如果你使用一个字符类,它就更具可读性。
echo preg_replace('/[?&]ajax=true/', '', $string);
[?&]
是一个字符类,它将匹配方括号中列出的字符中的一个字符。
答案 1 :(得分:0)
我认为你的表达没问题。您可以添加(?i)忽略大写字母。结果应该是这样的:
echo preg_replace('/(\?|&)(?i)ajax=true/', '', $string);