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