繁体   English   中英

使用正则表达式检查Python域名

[英]Python domain name check using regex

我希望为域名设置用户输入检查。 我在stackoverflow上找到以下内容检查字符串中的有效域名? 和答案:r'[a-zA-Z \\ d - ] {,63}(。[a-zA-Z \\ d - ] {,63})*'似乎符合我的需要(概念上)但是当我使用re.match和大于63个字符的字符串测试它时,它仍然返回'true'。

当我使用group()测试结果时,它返回前63个字符,这是有道理的。 基于此,有人可以告诉我,我做错了什么? 匹配在这种情况下使用的正确操作还是我还需要做其他事情才能正确测试字符串?

谢谢。

你应该根据你的输入锚定它,并确保“。” 真的匹配一个时期。

r'^[a-zA-Z\d-]{,63}(\.[a-zA-Z\d-]{,63})*$'

你可以试试这个:

^[a-z0-9]([a-z0-9-]+\.){1,}[a-z0-9]+\Z

例子:

  • w3.example.com [匹配]
  • example.com [匹配]
  • w3.site-example.com [匹配]
  • -w3.example.com [不匹配]
  • example.buzz [匹配]
  • .com [不匹配]
  • EXAMPLE.com [不匹配]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM