鱼C论坛

 找回密码
 立即注册
查看: 415|回复: 2

第六十讲:正则表达式4内容求助

[复制链接]
发表于 2018-10-10 22:39:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
课程中,小甲鱼老师再列举查找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,heml)
  for each in uplift:
    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()时两个式子结果不同,差别是因为第一个使用了 () 第二个 [] 运行差异是怎样的?
以上请大佬帮忙解惑~~!@#¥%…………&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 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()时两个式子结果不同,差别是因为第一个使用了 () 第二个 [] 运行差异是怎样的?
以上请大佬帮忙解惑~~!@#¥%…………&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-10 23:15:23 | 显示全部楼层
1匹配,只是不作为子组,相当于把括号去掉来匹配(当然外边的出现次数还是管用的)
2第一个是因为内部还有个括号,里面还是个子组,第二个去掉括号就没有子组了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 07:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表