谁有一个正则表达式,可以匹配任何合法的DNS主机名或IP地址?
编写一个95%的工作时间很容易,但我希望得到一个经过良好测试的东西,完全匹配DNS主机名的最新RFC规范。
谁有一个正则表达式,可以匹配任何合法的DNS主机名或IP地址?
编写一个95%的工作时间很容易,但我希望得到一个经过良好测试的东西,完全匹配DNS主机名的最新RFC规范。
当前回答
试试这个:
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
这对我来说是有效的。
其他回答
下面是我在Ant中用于从ANT_OPTS中获取代理主机IP或主机名的正则表达式。这用于获取代理IP,以便在为fork JVM配置代理之前运行Ant“isreachable”测试。
^.*-Dhttp\.proxyHost=(\w{1,}\.\w{1,}\.\w{1,}\.*\w{0,})\s.*$
要匹配一个有效的IP地址,使用以下正则表达式:
(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]?)){3}
而不是:
([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\.([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])){3}
解释
许多正则表达式引擎匹配OR序列中的第一种可能性。例如,试试下面的正则表达式:
10.48.0.200
Test
测试好与坏的区别
/^(?:[a-zA-Z0-9]+|[a-zA-Z0-9][-a-zA-Z0-9]+[a-zA-Z0-9])(?:\.[a-zA-Z0-9]+|[a-zA-Z0-9][-a-zA-Z0-9]+[a-zA-Z0-9])?$/
我考虑过这个简单的正则表达式匹配模式来进行IP地址匹配 \ d + [] \ d + [] \ d + [] \ d +
这适用于有效的IP地址:
regex = '^([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])[.]([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])[.]([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])[.]([0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5])$'