2015-10-01 55 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

只是回答所述的问题 –