首页 > 解决方案 > 正则表达式匹配由空格分隔的多个 IPAddress/域名

问题描述

我需要找到一个正则表达式,我可以在其中解析测试字符串192.168.2.1 www.google.com 10.20.21.199,例如 where I 192.168.2.1www.google.com并且10.20.21.199是有效的 IP 地址。

当前正则表达式以匹配由 a 分隔的多个 IPAddress/域名space rexp = /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))(\s(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])).(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5])))*$/

测试字符串192.168.2.1 www.google.com 10.20.21.199

标签: javascriptregex

解决方案


您可以使用以下(简化的)正则表达式来搜索 IP 地址和域名:

/((\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.){3}(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))([ ]|$)|([\w-]+\.)+\w+([ ]|$)/g

正则表达式使用与您的 ip 地址相同的模式,除了它使用'{3}'量词来获取前三个部分。然后它在最后添加一个域名检查(它们可以包含任意数量的子域)。


推荐阅读