代码之家  ›  专栏  ›  技术社区  ›  Mapi

逗号分隔列表的正则表达式

  •  0
  • Mapi  · 技术社区  · 6 年前

    应该是有效的:

    altdns1.at、altdns2.de.fr、altdns3.de

    应无效:

    高度1.at,高度2.de.fr,高度3.de,

    ^([^,]+,)*([^,]*)$
    

    我的想法:

    • ([^,]+,) 字符串开头:除逗号外的任何字符-一到无限次-后跟逗号
    • * 所有这些零到无限次
    • ([^,]*)

    Regex101显示此字符串与我的模式匹配:

    高度1.de.de,高度2.de.de,高度3.de.de,

    为什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Toto    6 年前

    使用这个:

    ^[^,]+(?:,[^,]+)*$
    

    说明:

    ^           : begining of line
      [^,]+     : 1 or more not comma
      (?:       : start non capturing group
        ,       : a comma
        [^,]+   :  1 or more not comma
      )*        : end group, may appear 0 or more times
    $           : end of line