【问题标题】:Best Regex regular expression to match a list of command delimited FQDN's匹配命令分隔的 FQDN 列表的最佳正则表达式
【发布时间】:2016-07-18 18:02:38
【问题描述】:

谁能帮我写一个正则表达式来验证 FQDN(完全合格的域名)列表。可能性是:

  • [No entry] - 虽然我可以通过检查字段来验证这一点 空的
  • [一个条目] - 示例:

    webtest.se1.server.net
    
  • [多个条目,以逗号分隔] - 示例:

    webtest.se1.server.net, webtest.se2.server.net
    
  • 可以大写或小写。

  • 不能以逗号开头 - 例如:

    , webtest.se1.server.net
    
  • 不能用空格分隔,例如:

    webtest.se1.server.net webtest.se2.server.net
    
  • 逗号后面可以有空格,例如:

    webtest.se1.server.net, webtest.se2.server.net,webtest.se3.server.net
    

【问题讨论】:

  • 为什么不用逗号分割字符串呢?然后做一个查找依次检查每个
  • 所以我不需要提取字符串的任何部分。我只需要验证整个字符串的格式是否有效。
  • 只需将字符串用逗号分割成一系列字符串即可。测试每个字符串

标签: regex fqdn


【解决方案1】:

试试这个:

^[\w-]+(\.[\w-]+)+(, ?[\w-]+(\.[\w-]+)+)*$

请参阅live demo(使用您的示例)。

【讨论】:

    【解决方案2】:

    类似:^([0-9a-zA-Z\-_.]+(,|, ){0,1})*$

    解释:

    • ^ 是字符串锚的开始
    • $ 是字符串锚的结尾
    • [...] 是一个字符类定义
    • \* 是“零次或多次”重复

    【讨论】:

    • 这几乎可以工作。我需要为 abc-def 等地址添加一个“-”。但是它接受一个空格作为分隔符,我该如何调整它使其不接受:abc.com def.com? ^([0-9a-zA-Z.-]+[,| ,]*)*$
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多