鍍金池/ 問答/Java  Python/ 正則獲取網(wǎng)址,不知道 11 行處的代碼改變后為什么沒用了

正則獲取網(wǎng)址,不知道 11 行處的代碼改變后為什么沒用了

1.問題:
第一條正則表達(dá)式獲取 163/qq/gmail 格式郵箱,最后只得到 '163', 'qq', 'gmail'
第二條正則卻能得到正確郵箱,不是很理解,希望有前輩告知原因

2.代碼

  • 代碼1:

  1 import re
  2 
  3 urls = """
  4 http://www.ireaqwe.com/messfo.asp?id=35
  5 http://3995503.com/cld/cla09/news_sw.asp?id=14
  6 http://lib.wdf.edu.cn/news/onews.asp?id=769
  7 http://www.zsy-lass.com/alfx.asp?newsid=377&id=6
  8 http://www.fsaacm.com/newslasisad.asp?id=415
  9 """
 10 
 11 res = re.findall(r'http://.*\.(com|cn)/', urls)
 12 print(res)
結(jié)果:`['com', 'com', 'cn', 'com', 'com']`
  • 代碼2(改變 11 行語句):

11 res = re.findall(r'http://.*\.com/|http://.*\.cn/', urls)

結(jié)果

['http://www.interoem.com/', 'http://3995503.com/', 'http://lib.wzmc.edu.cn', 'http://www.zy-ls.com/', 'http://www.fincm.com/']
回答
編輯回答
陌上花

在正則表達(dá)式中使用“()”會讓括號中的內(nèi)容變成一個“組”,要達(dá)到你的要求,應(yīng)改成(?:com|cn)

2017年12月18日 19:14