有人有正则表达式来验证合法的 FQDN 吗?
现在,我使用这个正则表达式:
(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?!-)\.?)+(?:[a-zA-Z]{2,})$)
但是,此正则表达式会导致“aa.a”无效,而“aa.aa”有效。
有谁知道为什么?
这是一个较短的模式:
(?=^.{1,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[a-zA-Z]{2,})$)
至于为什么模式确定“aa.a”无效而“aa.aa”有效,这是因为{2,}
- 如果你把 2 改成 1 的话
(?=^.{1,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[a-zA-Z]{1,})$)
它应该认为“aa.a”和“aa.aa”都是有效的。
string pattern = @"(?=^.{1,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[a-zA-Z]{1,})$)";
bool isMatch = Regex.IsMatch("aa.a", pattern);
isMatch
对我来说是真的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)