1.问题:
第一条正则表达式获取 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)
结果:`['com', 'com', 'cn', 'com', 'com']`
代码2(改变 11 行语句):
11 res = re.findall(r'http://.*\.com/|http://.*\.cn/', urls)
结果
['http://www.interoem.com/', 'http://3995503.com/', 'http://lib.wzmc.edu.cn', 'http://www.zy-ls.com/', 'http://www.fincm.com/']
在正则表达式中使用“
()
”会让括号中的内容变成一个“组”,要达到你的要求,应改成(?:com|cn)