GG资源网

Python,关于正则表达式中findall()问题。自学Python,碰到这个例子想了好久

问题描述:

Python,关于正则表达式中findall()问题。自学Python,碰到这个例子想了好久

对一个IP地址的匹配字符串。
自己的想法是,[1-9]{1,3}匹配其中的'127',(.[0-9]{1,3}){3}匹配后面的‘.0.0.1’
但如果采用r'[1-9]{1,3}.[0-9].[0-9].[0-9]'就能匹配到‘127.0.0.1’
不知道为什么输出会多出一个‘.1‘
希望能得到解答

网友观点:

应该是这样进行匹配

而findall这个函数

是在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
string : 待匹配的字符串。
pos : 可选参数,指定字符串的起始位置,默认为 0。
endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。


127.0.0.1

正则应该这样写,连续数组\\d+, 后面是有规律的.\\d+......, 重复需要用分组,由于分组用(),所以要强调非捕获组?:,

所以完整正则为:

import re
regex = r"\\d+(?:.\\d+)+"
test_str = ("127.0.0.1\\n"
"133.5.7.8")
regexp = re.compile(regex)
MT = regexp.findall(test_str)
print(MT)

------输出如下:

['127.0.0.1', '133.5.7.8']**

Python正则表达式问题?

常用的正则表达式元字符

元字符 含义
. 匹配任意一个字符
\\d 一个数字
\\w 可以组成word的一个字母
+ 次数>=1
? 次数==1
* 次数>=0

例。下面是学校的介绍信息,其中包含了电话号码,利用正则表达式可以很容易从这些字符中提取电话号码。

由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » Python,关于正则表达式中findall()问题。自学Python,碰到这个例子想了好久

发表回复

CAPTCHAis initialing...