2012-10-16 19 views
0

这是preg_replace(正则表达式)删除的正确语法吗?ajax = true或& ajax = true从字符串?preg_replace - 两个不同字符的正则表达式php

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

因此,例如/你好/喜?阿贾克斯=真会给我/你好/ HI和/你好/喜?阿贾克斯=真会给我/你好/ HI

我需要逃跑&?

+2

请谨慎使用'/ hello/hi&foo = bar'代替'/ hello/hi?ajax = true&foo = bar' – Toto

回答

1

你为什么不尝试呢?

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

你的表情应该工作,这是你正在使用的替代方案。但是如果你的轮换中只有单个字符,那么如果你使用一个字符类,它就更具可读性。

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

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

+0

我喜欢那个答案,解释得很好,而且你的方法更易于阅读。谢谢 –

0

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

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