preg_replace - 两个不同字符的正则表达式php

时间:2012-10-16 10:49:56

标签: php regex

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

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

所以例如/ hello / hi?ajax = true会给我/ hello / hi和/ hello / hi?ajax = true会给我/ hello / hi

我是否需要逃避&?

2 个答案:

答案 0 :(得分:1)

你为什么不试试?

您无需逃避“&”。它不是正则表达式中的特殊字符。

你的表达应该正常,这是你正在使用的变化。但是如果你在交替中只有单个字符,那么如果你使用一个字符类,它就更具可读性。

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

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

答案 1 :(得分:0)

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

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