2012-10-16 20 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); 
相關問題