2015-10-01 62 views
-4

爲什麼正則表達式不匹配URL?這個例子有什麼問題?Python - 帶有URL的正則表達式

import re 

link = "http://example.com/~abc/cgi-bin/abc/" 
regex = r'[c][g][i]' 

matchOBJ = re.match(regex, link) 

if (matchOBJ): 
    print "GOT IT" 

print "END" 
+5

因爲'match'檢查字符串的開始 - 嘗試're.search'。另外,請注意,您可以在鏈接中執行'if'cgi',',這裏的regex是完全沒有意義的。 – jonrsharpe

+0

re.search製作。謝謝! –

回答

0

並[c] [G] [I]並不真正意義爲正則表達式。 你可能只想「cgi」。

也許你的意思是「[cgi]」?但是,你會匹配「要麼C或G或我」。

例如,[CGI]。*

將匹配

  • Ç的ats
  • 燕麥
  • guanas

由於'c'的開頭,[cgi]會碰巧與「cgi」匹配。

你可能想一些接近:

import re 

link = "http://example.com/~abc/cgi-bin/abc/" 
regex = r'.*\/cgi-bin\/.*' 

matchOBJ = re.match(regex, link) 

if (matchOBJ): 
    print "GOT IT" 

print "END" 

但只考慮

if "cgi-bin" in link: 
    print "GOT IT EASY" 
+1

即使*更*過於複雜! – jonrsharpe

+0

只是回答所述的問題 –