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

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

谢谢。

===============>>#1 票数:2 已采纳

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

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

===============>>#2 票数:0

你可以试试这个:

^[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 [不匹配]

  ask by user788462 translate from so

未解决问题?本站智能推荐: