2010-09-14 108 views

回答

4

爲什麼不直接使用urlparse呢?

+0

同意;正則表達式不適用於URI,電子郵件地址或標記。 – 2010-09-14 07:32:26

+0

@Delan:我很確定使用URI的正則表達式是完全正確的。他們甚至會給你一個解析RFC 3986中的URI。 – 2010-09-14 07:36:13

+0

儘管大多數URI都很簡單,但也有一些怪癖和複雜性,就像電子郵件地址一樣,這會造成一些誤報和否定。我不記得是誰,但是有人寫了一個正則表達式來驗證電子郵件地址是否符合規範,作爲這個概念的證明,並且它填充了一個頁面。 – 2010-09-14 07:38:18

0

答案取決於你是否想要解析URL,或者你是否想知道如何處理可選的斜線。

在第一種情況下,我同意琥珀,你應該使用urlparse。

在第二種情況下,使用一個?在表達式中斜線後:

http://xyz.com//?abc 

在正則表達式的?意味着先前的元素是可選的(即可能出現零次或一次)。

0

你可以使用這個表達式:

\w{4}\:\/{2}\w+\.\w+\/{1,2}\w+ 

解釋:

\w{4} match any word character [a-zA-Z0-9_] 
    Quantifier: Exactly 4 times 
\: matches the character : literally 
\/{2} matches the character/literally 
    Quantifier: Exactly 2 times 
\w+ match any word character [a-zA-Z0-9_] 
    Quantifier: Between one and unlimited times, as many times as possible, giving back as needed 
\. matches the character . literally 
\w+ match any word character [a-zA-Z0-9_] 
    Quantifier: Between one and unlimited times, as many times as possible, giving back as needed 
\/{1,2} matches the character/literally 
    Quantifier: Between 1 and 2 times, as many times as possible, giving back as needed 
\w+ match any word character [a-zA-Z0-9_] 
    Quantifier: Between one and unlimited times, as many times as possible, giving back as needed 

希望這會有所幫助。