正则表达式 - 检查逗号分隔的子字符串长度

时间:2013-06-20 10:48:41

标签: regex

我是正则表达的新手。我的输入是一个逗号字符串。我需要验证每个子字符串长度是3,用逗号分隔。例如:“em1,erg,123,enc”这里子字符串长度为3,因此它是有效的。如果“em1,erg,123,ency”,它应该是无效的。如何在没有任何其他代码的情况下验证正则表达式?

1 个答案:

答案 0 :(得分:5)

您可以使用以下正则表达式:

^(?:[^,]{3},)*[^,]{3}$

Regular expression image

Edit live on Debuggex

它由以下部分组成:

  • ^ - 字符串的开头
  • [^,]{3} - 正好三个字符不是逗号
  • , - 逗号
  • (?: ... )* - 前者包裹在(非捕获)组中,后跟*,它允许包含的模式重复(零次或多次)。
  • [^,]{3} - 正好三个字符不是逗号。这是匹配最后三个字符(最后没有逗号)的必要条件。
  • $ - 字符串
  • 的结尾