我在C#中编写了以下模式,以验证从用户收到的FQDN:

(`?=^.{1,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[0-9a-zA-Z]{1,})$)


我想允许用户输入以下FQDN:

<name>.<letter><digit>


例如“ aa.a1”。对于“ aa.a1”,我的正则表达式将FQDN检测为无效,而对于“ aa.1a”,则将其检测为有效。有人知道为什么吗?

最佳答案

您可以将字符串加载到Uri中,并使用不同的方法和属性来确定它是否为FQDN,而不是使用RegEx。

Uri uri = new Undri(myFQDN);
string host = uri.Host;
bool isAbsolute = uri.IsAbsoluteUri;

关于c# - 使用正则表达式验证C#中的FQDN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4913485/

10-11 05:00