嗨stackoverflow社區!
我想在PHP中使用一個簡單的正則表達式表達式,基於正面後視。我的目標是提取域名和一組特定字符(?或&或/)之間的URL中的所有內容。我想提取 「欄」 上的那些例子:PHP的正則表達式:幾個停止字符積極lookbehind
foo.com/bar?
foo.com/bar&
foo.com/bar/
我試圖
(?<=foo\.com\/)[^/?&]+
它工作正常the plateform test 但與PHP 5.3x preg_match:錯誤thr自己的是,我不能使用幾個停止字符 - 它適用於一個。
我也嘗試了積極lookbehind/lookahead的組合,但問題仍然相同。 我做錯了什麼?
你封閉正則表達式裏面的分隔符?你能告訴我們你的代碼嗎? – Toto 2012-03-16 12:24:49
@ M42肯定!這裏是:'preg_match(「/(?<= foo \ .com \ /)[^ /?&] + /」,「http://www.foo.com/bar?」,$ result);' – 2012-03-16 12:33:37
您需要轉義所有斜線:'/(?<= foo \ .com \ /)[^ \ /?&] + /'包括字符類中的一個。 – Toto 2012-03-16 12:35:18