Javascript 正则表达式匹配多个由空格分隔的IP地址/域名

Javascript 正则表达式匹配多个由空格分隔的IP地址/域名,javascript,regex,Javascript,Regex,我需要找到一个正则表达式,在这里我可以解析测试字符串192.168.2.1 www.google.com 10.20.21.199,比如这里的I192.168.2.1,www.google.com和10.20.21.199都是有效的ip地址 目前,雷克斯在目前的regex将匹配多个IP地址/域名名,目前的regex将匹配多个IP地址/域名名,由一个空间代码空间空间

我需要找到一个正则表达式,在这里我可以解析测试字符串
192.168.2.1 www.google.com 10.20.21.199
,比如这里的I
192.168.2.1
www.google.com
10.20.21.199
都是有效的ip地址

目前,雷克斯在目前的regex将匹配多个IP地址/域名名,目前的regex将匹配多个IP地址/域名名,由一个<代码>空间<代码>代码<代码>空间<代码>空间<代码<代码<代码>代码<代码<代码>空间<代码<代码<代码<代码<代码>代码<代码>代码<代码>代码<代码>目前,雷克斯p=///(\d|[1-9\d|[1-9\1-9\1-9\1-9\1-1-1-1-9存存存存存目前雷克斯)目前,目前雷克斯在目前的雷克斯在目前,目前的雷克斯在目前的雷克斯在目前的雷格格格格格夫将匹配当前,目前在目前在匹配多个ip格格格格格格格格格格格夫目前的当前,以匹配多多个IP/目前的目前在目前的多个ipD | 2([0-4]\d | 5[0-5]))(\s(\d |[1-9]\d |[1-4]\d |[1-4]\d | 5[0-5]))(\d |[1-9]\d | 1\d | 2([0-4]\d | 5[0-5]))(\d |[1-9]\d |[1\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

您可以使用以下(简化)正则表达式搜索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}'
量词来获取前三部分。然后它在末尾添加域名检查(它们可以包含任意数量的子域).

问题是什么?如果您正在寻找多个匹配项,您不希望强制使用
^
作为字符串的开头。我建议您使用在线测试仪,直到您对结果感到满意,然后再处理编程:如果您只想要IP地址,为什么要让这些选项复杂化ess和域名,请尝试此
^(.\d+)+\s(.-z]+)+\s(.-d+)+$
或仅
(.-d+)+\s(.-z]+)+\s(.-d+)+
以获得结果。如果您有更多的检查,然后用完整的细节更新您的问题,目前问题没有任何标题。问题是您不能拥有257.900.856.123 IP地址,因此我认为这很复杂。您如何知道
www.google.com
是一个有效的IP地址?我也是。但您可以当然可以,如果你愿意的话。这很容易改变。你的正则表达式可以工作85%,但我有一些问题,我已经在文章中强调了,因为正则表达式也匹配
www.google
,我认为这不应该,但匹配
www.tn.good.au
是可以的,你的正则表达式所做的是一个完全有效的主机名。你是对的,它有no关于“.google”不是有效的全球域的知识。这需要世界上所有主要域的列表。