gpt4 book ai didi

regex - 匹配 DNS 主机名或 IP 地址的正则表达式?

转载 作者:行者123 更新时间:2023-12-03 03:57:46 26 4
gpt4 key购买 nike

有人有方便的正则表达式来匹配任何合法的 DNS 主机名或 IP 地址吗?

编写一个在 95% 的情况下都有效的程序很容易,但我希望得到经过充分测试的东西,以完全匹配 DNS 主机名的最新 RFC 规范。

最佳答案

您可以单独使用以下正则表达式,也可以将它们组合成一个联合 OR 表达式。

ValidIpAddressRegex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";

ValidHostnameRegex = "^(([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])$";

ValidIpAddressRegex 匹配有效的 IP 地址和 ValidHostnameRegex 有效的主机名。根据您使用的语言,\可能必须用\进行转义。

<小时/>

ValidHostnameRegex 根据 RFC 1123 有效。本来RFC 952指定主机名段不能以数字开头。

http://en.wikipedia.org/wiki/Hostname

The original specification ofhostnames in RFC952,mandated that labels could not startwith a digit or with a hyphen, andmust not end with a hyphen. However, asubsequent specification (RFC1123)permitted hostname labels to startwith digits.

Valid952HostnameRegex = "^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$";

关于regex - 匹配 DNS 主机名或 IP 地址的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/106179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com