|
|

楼主 |
发表于 2018-10-10 22:41:38
|
显示全部楼层
有代码写错地方,以下已纠正!
课程中,小甲鱼老师再列举查找IP地址时,首先使用了:
def get_ip(html):
p = r'([0,1]?\d?\d|2[0-4]\d|25[0-5]\.){3}[0,1]?\d?\d|2[0-4]\d|25[0-5]'
iplist = re.findall(p,html)
for each in iplist:
print(each)
时候,搜索出来的IP地址都是元组类型:(192.168.1.1)形式。
之后再使用p = r'(?:(?:[0,1]?\d?\d|2[0-4]\d|25[0-5]\.){3}(?:[0,1]?\d?\d|2[0-4]\d|25[0-5]))'后才变成:192.168.1.1形式
问题:1.使用非捕获组不是不去匹配任何东西吗,为什么还能匹配出来IP地址,而且还不是元组形式比较困惑。只使用p = r'(?:([0,1]?\d?\d|2[0-4]\d|25[0-5]\.){3}([0,1]?\d?\d|2[0-4]\d|25[0-5]))'是否可行
2.自己在实验,m = re.match('(?:(abc)+)','abc')与 m = re.match('(?:[abc]+)','abc')时,在m.groups()时两个式子结果不同,差别是因为第一个使用了 () 第二个 [] 运行差异是怎样的?
以上请大佬帮忙解惑~~!@#¥%…………& |
|