2014-10-30 32 views
0

我試圖讓與以下兩個網址匹配的正則表達式:試圖找到正確的正則表達式

http://honey.myPage.com/national/ 
http://honey.myPage.com/national 

我的意思是結尾斜線和沒有結束斜線 我能夠做出以下網址目前只能用斜線識別模式的模式。 任何人都可以建議我要麼能識別這兩種類型的網址

/\.myPage\.com\/(\D+[\/])+(index.htm[l]?)?/ 

任何幫助將appericiated

不同模式的

回答

1

一個問號代表0或1。所以,你有斜槓後添加一個問號。 它改成這樣:

/\.myPage\.com\/(\D+\/?)+(index.htm[l]?)?/ 
+0

你不需要單個字符的字符類。 – 2014-10-30 13:15:09

+0

謝謝。這是一個直接副本,所以我沒有評估它。 – 2014-10-30 13:23:57

+1

這個'index.htm [l]?'部分有錯誤。 – 2014-10-30 13:27:52

2

你能否澄清與你的意圖\ d? 它匹配任何非數字,所以還會匹配/,?,!,... 我不認爲這是你的意圖是什麼?

假設你想匹配:

.myPage.com/pretty/mutch/any/uri/provided 
.myPage.com/pretty/mutch/any/uri/provided/ 
.myPage.com/pretty/mutch/any/uri/provided/index.htm 
.myPage.com/pretty/mutch/any/uri/provided/index.html 

我會像這樣的東西去:

\.myPage\.com(\/\w+)+?(\/(index\.html?)?)? 

(\/\w+)+? - 匹配/sometext,重複一次或多次,但儘量少到工作(有必要妥善處理規則的其餘部分)

(\/(index\.html?)?)?應分解:

/(index.html?)? )? - 整個塊是可選的

/(index.html)? - 將匹配//index.htm/index.html

希望這會有所幫助。