马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Yukiouht 于 2020-10-12 15:30 编辑
看了小甲鱼的爬虫视频,在057讲的正则表达式中,视频末尾21:06时说了这个正则表达式有个小bug,这是视频中的代码:>>> re.search(r'(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])', '192.168.1.1')
<re.Match object; span=(0, 11), match='192.168.1.1'>
(此处的代码是照视频手打出来的)
后面看完视频,因为好奇就在要匹配的IP地址里,换了个255.255.255.255,结果返回如下:>>> re.search(r'(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])', '255.255.255.255')
<re.Match object; span=(0, 14), match='255.255.255.25'>
如代码,第三个 “ . ” 后面的数只有两位了,还有一位莫名其妙被吞掉了,尝试解决着:>>> re.search(r'(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5]{1})', '255.255.255.255')
<re.Match object; span=(0, 14), match='255.255.255.25'>
(加了个{1},就是第三位必须重复一次)
不过结果还是一样,然后就没啥头绪了,不知道怎么样解决.(也不知道小甲鱼说的bug是不是这个 )
视频里不知道。。。。。
但是小甲鱼论坛的扩展阅读里
https://fishc.com.cn/forum.php?m ... 2%B1%ED%B4%EF%CA%BD
是这样的: import re
a=re.search(r'(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)', '255.255.255.255')
print(a)
<re.Match object; span=(0, 15), match='255.255.255.255'>
|