我想匹配具有可選分段的網址格式。正則表達式,按特定順序匹配網址片段?
我有網址,就像這樣:
subdomain.domain.com/page/pageurl/pagename/123/
subdomain.domain.com/page/pageurl/pagename/
subdomain.domain.com/page/pageurl/
subdomain.domain.com/page/
現在我有所有這些情況相匹配的正則表達式:
^([a-z]+)\.domain\.com\/page(\/[a-z]+)?(\/[a-z]+)?(\/[0-9]+)?\/?$
但是如果你去這個網址這個regexs失敗:
subdomain.domain.com/page/123/
它也匹配這個網址,我不希望發生這種情況,因爲第一段應該是[az] +而沒有任何東西倫敦政治經濟學院。現在我明白爲什麼會發生這種情況,但我無法弄清楚正確的正則表達式來滿足我的需求。 我需要一個匹配這些URL-s的正則表達式,但爲了順序,所以如果第一個段後面的數字,它不應該匹配...
我該怎麼做?我要去瘋狂現在:S
Rubural例如:LINK
謝謝!
是THI s在mod_rewrite中? – Umbrella 2012-02-18 18:21:35
不,這是在PHP中,我使用preg_match()來匹配URL-s。 – Limeni 2012-02-18 18:24:28
只是刪除第一個'段',(\/[a-z] +)的捕獲組後面的問號?成爲(\/[a-z] +) – Robjong 2012-02-18 18:27:35