2013-02-05 61 views
0

我一直在嘗試使用正則表達式來確定當前的URL匹配任何http://test.com或http://test.com/page/[0-9]+如何使用正則表達式檢查可選的URL參數?

我一直在尋找了無數的教程但是無法找到任何即使在遠程也無法解決的問題。我已經嘗試了幾乎所有的東西,但是我對於正則表達式太缺乏經驗,無法完成它。

謝謝你的幫助,我希望你能指點我正確的方向。

+1

顯示你的代碼。解釋「當前URL」是指什麼。變量匹配? CGI環境?或者.htaccess規則? *另請參見[開源RegexBuddy替代品](http://stackoverflow.com/questions/89718/is-there)和[在線正則表達式測試](http://stackoverflow.com/questions/32282/regex-testing)對於一些有用的工具,或[RegExp.info](http://regular-expressions.info/)更好的教程。 – mario

+0

我的確看到了混亂。 '當前網址'是指您所在的完整網址,例如http://test.com/hello/world。我把它標記爲PHP和preg_match,我認爲這會是自我解釋的,但我試圖做的是運行一種模式,使其與您當前所在的URL相匹配。這些鏈接真棒!這些將爲我節省很多頭痛=) – adamj

回答

2

您可以嘗試

"http://test\.com(?:/page/[0-9]+)?" 
+0

你能否詳細解釋一下'?:'。它有什麼作用?這是出於性能原因嗎? –

+0

?:開始一個子模式 - 意味着這不會出現在preg_match – Philipp

+0

的匹配參數中謝謝。這幾乎適用於我,我只需稍微修改一下'http:// test \ .com(?:/ page/[0-9] +)?$'就可以強制它只處理特定的URL。謝啦!我欠你一杯虛擬啤酒=) – adamj