0

这是 preg_replace (正则表达式)从字符串中删除 ?ajax=true 或 &ajax=true 的正确语法吗?

echo preg_replace('/(\?|&)ajax=true/', '', $string);

因此,例如 /hello/hi?ajax=true 会给我 /hello/hi 和 /hello/hi?ajax=true 会给我 /hello/hi

我需要逃避&吗?

4

2 回答 2

1

你为什么不试试呢?

您不需要转义“&”。它不是正则表达式中的特殊字符。

你的表达应该是有效的,这是你正在使用的一种替代方式。但是,如果您的交替中只有单个字符,那么如果您使用字符类,它会更具可读性。

echo preg_replace('/[?&]ajax=true/', '', $string);

[?&]是一个字符类,它将匹配方括号之间列出的字符中的一个字符。

于 2012-10-16T11:34:19.787 回答
0

我觉得你的表达没问题。您可以添加 (?i) 以忽略大写字母。结果应该是这样的:

echo preg_replace('/(\?|&)(?i)ajax=true/', '', $string);
于 2012-10-16T10:57:20.090 回答