gpt4 book ai didi

regex - 用于匹配 Azure 负载均衡器名称的正则表达式

转载 作者:行者123 更新时间:2023-12-03 05:33:27 25 4
gpt4 key购买 nike

如何使用正则表达式验证 Azure 负载均衡器名称?

rules是:

  • 可以包含字母数字、下划线、句点和连字符。
  • 以字母数字开头。
  • 以字母数字或下划线结尾。
  • 长度介于 1 到 80(含)之间

我尝试使用 ^[A-Za-z0-9][A-Za-z0-9_.-]{1,80}$,但它匹配以句点结尾的字符串,包含 81 个字符的字符串,并且不匹配仅包含 1 个字符的字符串。

最佳答案

您尝试的模式至少匹配 2 个字符,因为这部分 [A-Za-z0-9] 匹配单个字符,而这部分 [A-Za-z0-9_ .-]{1,80} 至少匹配 1 个字符,最多可匹配 81 个字符。

<小时/>

您可以使用字母数字字符开始匹配,然后选择匹配与 [A-Za-z0-9.-] 之一匹配的 0-78 个字符,并以 [ 结束匹配A-Za-z0-9_] 因此它也可以以下划线结尾。

^[A-Za-z0-9](?:[A-Za-z0-9.-]{0,78}[A-Za-z0-9_])?$

说明

  • ^ 字符串开头
  • [A-Za-z0-9] 匹配单个字母数字
  • (?: 非捕获组
    • [A-Za-z0-9.-]{0,78} 匹配任何列出的允许字符的 0-78 次重复
    • [A-Za-z0-9_] 匹配单个字母数字或下划线
  • )? 关闭组并使其可选
  • $ 字符串结尾

Regex demo

如果您不想匹配连续的连字符或点,也可以使用

^(?=[A-Za-z0-9_.-]{1,80}$)[A-Za-z0-9][A-Za-z0-9_]*(?:[.-][A-Za-z0-9_]+)*$

Regex demo

关于regex - 用于匹配 Azure 负载均衡器名称的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64030216/

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