regex - 如何使用正则表达式获取第三个数字短语 ip 地址(v4)

标签 regex parsing ip-address

我想从 IP 地址获取第三个数字(v4) 仅使用正则表达式。

这里有很多ip

172.23.34.159
172.23.34.51
211.234.202.246
147.6.41.120
172.23.34.171
10.225.149.118
172.23.34.64

这可能吗?

最佳答案

这至少应该适用于 :

\b\d{1,3}\.\d{1,3}\.\K\d{1,3}(?=\.\d{1,3}\b)

或者如果你想要更强大的东西:

\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.\K(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?=\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b)

你可以尝试一下

$ re='\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.\K(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?=\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b)'
$
$ perl -lne 'print $& if /'"$re"'/' file.txt
34
34
202
41
34
149
34
$ 
$ grep -oP "$re" file.txt
34
34
202
41
34
149
34

关于regex - 如何使用正则表达式获取第三个数字短语 ip 地址(v4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262421/

相关文章:

java - 解析 XML 文件 (java)

parsing - 行为奇怪的 ANTLR 语法

asp.net - 在 MVC 中使用正则表达式同时检查空和数字输入

java - 正则表达式用大写和小写字符分割字符串

c# - 使用正则表达式匹配但不包含在结果中

php - 为什么\w 在 Mac OS X PHP 环境中匹配非英文字符?

html - Angular2 将字符串解析为 html

powershell - 新-AzureReservedIP : What´s the difference between ReservedIPName and Label?

c - inet_ntop 的第二个参数的正确类型/格式是什么?

c# - 在 C# 中,如何解析主机的 IP 地址?