已有183人关注
正则表达式疑惑求解答
发表在Python图书答疑 2020-07-12 《零基础学Python》第5章 字符串及正则表达式
是否精华
版块置顶:
import re
pattern = r'([1-9]{1,3}(.[0-9]{1,3}){3})'
str1 = '127.0.0.1 192.168.1.66'
match = re.findall(pattern,str1)
print(match)
for tom in match:
    print(tom[0])

这个正则表达式的结果如下:

[('127.0.0.1', '.1'), ('192.168.1.66', '.66')]

127.0.0.1

192.168.1.66

求解答:

pattern = r'([1-9]{1,3}(.[0-9]{1,3}){3})'

最后面的{3}意思是括号里面的表达式重复三次,重复三次后得到的结果是[('127.0.0.1', '.1'), ('192.168.1.66', '.66')],多了一个‘.1’和'.66',如果不想多,我将{3}改为了{2},但结果变成了如下:

[('127.0.0', '.0'), ('1 192.168', '.168')]

请教这个正则表达式到底是如何匹配

'127.0.0.1 192.168.1.66'

的。

2020-07-12 21:38:14编辑
分享到:
精彩评论 1
无语_mrkj
学分:3155 LV11
2020-07-15
沙发

您的这个正则表达式中包括两个分组,所以会得到包括两个分组的结果组成的列表。其中, '.0'、'.168'是

(.[0-9]{1,3}){3}

匹配的结果,而前面的'127.0.0'、'1 192.168'

([1-9]{1,3}(.[0-9]{1,3}){3})

匹配的结果。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照