Python中文
首页
教程
问答
标签
搜索
登录
注册
如何使用REGEX在长字符串中查找IP地址
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想知道如何从一个很长的字符串中只提取正确的IP地址。 问题是,我的代码提取的IP地址,即使它的一部分有超过3位数字(这是不正确的)。你知道吗</p> <p>我试图学习更多关于python正则表达式的知识,但我不知道如何在一个点后最多连续3位数字处停止它。 我的意思是,如果IP是1.2.3.4,它会正确地找到它,这确实是正确的,但是如果IP是1.2.3.4567,它也会正确地找到它,这是不正确的。我不知道怎么说,如果一个组有3个以上的数字,那就不是IP地址了。你知道吗</p> <pre><code>import re secv = "akmfiawnmgisa gisamgisamgsagr[sao l321r1m r2p4 2342po4k2m4 22.33.4.aer 1.2.3.5344 99.99.99.100 asoifinagf sadgsangidsng sg" b = re.findall(r"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.\d{1,3}",secv) print(b) </code></pre> <p>它打印<code>1.2.3.5344</code>和<code>99.99.99.100</code>,但<code>1.2.3.5344</code>不是IP地址,因为它有3个以上的连续数字</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>只需搜索出现4次的模式<code>[1-2]?[0-9]{1,2}</code>,中间用一个点隔开。可以选择在regex模式的开头和结尾使用单词边界</p> <pre><code>>>> re.findall(r'\b(?:[1-2]?[0-9]{1,2}\.){3}[1-2]?[0-9]{1,2}\b', secv) ['99.99.99.100'] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
1 回答
无法使用Django\u mssql\u后端迁移到外部hos
9 回答
无法使用Django&Python3.4连接到MySql
5 回答
无法使用Django+nginx上载媒体文件
8 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
6 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
5 回答
无法使用Djangockedi验证CBV中的字段
8 回答
无法使用Djangocketditor上载图像(错误400)
6 回答
无法使用Djangocron进行函数调用
8 回答
无法使用Djangofiler djang上载文件
4 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
6 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
7 回答
无法使用Djangomssq迁移Django数据库
4 回答
无法使用Djangonox创建用户
7 回答
无法使用Djangopyodb从Django查询SQL Server
10 回答
无法使用Djangopython3ldap连接到ldap
2 回答
无法使用Djangoredis连接到redis
10 回答
无法使用Django中的FK创建新表
7 回答