|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天看了小甲鱼关于正则表达式获取IP的方法,我有个小小的疑惑,还请大家帮忙解答一下,问题如下:
这是代码:
import re
IP = re.search(r"(([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-4])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-4])","192.168.1.1")
print(IP)
这个代码能返回正确的IP地址,但是如果吧正则表达式括号去掉(如下)一层就不行了,这是为什么呢
import re
IP = re.search(r"([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-4]\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-4])","192.168.1.1")
print(IP)
数字部分必须要和点号用括号隔开吗
下面这一部分不也是表示 xxx.或xx.或x.吗,只不过只有一层括号而已啊
([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-4]\.)
还烦请大神们指点一下,谢谢啦
本帖最后由 捌陆光年 于 2017-12-23 00:24 编辑
如果不加(),会吧\. 放在|后面,也就是25[0-4]\. 成为一个匹配项
这个时候([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-4]\.) 表达式就表示匹配25x.
改变了匹配运算的优先级顺序,所以没有返回结果
|
|