2011-08-15 44 views

回答

3

怎麼樣;

var m = s.match(/(http:\/\/myurl.com\/)([a-z]{2})(\/.*)/i); 

if (m) { 
    print (m[1]); 
    print (m[2]); 
    print (m[3]); 
} 

>>http://myurl.com/ 
>>en 
>>/something 
+0

如果可能,我嘗試使用另一個分隔符(例如, #),而不是正斜槓,這樣我就不必在每次在代碼和正則表達式程序之間複製正則表達式時更改這些正則表達式。 –

0

嘗試這種情況:

(https?://[\w\d-]+\.[\w]+)/([\w\d-]+)/(.*) 
0

此正則表達式可以匹配的URL

/^((http[s]?):\/\/)?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*?)?(#[\w\-]+)?$/im 

示例的許多地方= https://www.google.com/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash

在比賽所得:

1: (HTTPS://) - 協議

2:(HTTPS) - 協議

3:(www.google.com) - 主機

4:(/目錄/ 1/2 /) - 路徑

5:([]) - 路徑陣列段

6:(search.html) - 文件

7:(ARG = 0-A & ARG1 = 1-b & ARG3 -c) - 查詢

8:(#hash) - 散列