Java正则表达式,用于5到11位数字的CSV列表

Java正则表达式,用于5到11位数字的CSV列表,java,regex,Java,Regex,我有一个Java正则表达式来捕获长度为5到11位的单个数字: ^[0-9]{5,11}$ 我还需要能够捕获具有相同数字格式的CSV输入列表。此输入的示例如下: 0123456789,012345,012345678,01234567890 如何扩展早期的正则表达式以捕获其他逗号分隔的值?使用: ^[0-9]{5,11}(?:,[0-9]{5,11})*$ 其中: (?:,[0-9]{5,11})*将数字的0倍或更多倍与5到11位数字匹配,前面加逗号 使用: ^[0-9]{5,11}(

我有一个Java正则表达式来捕获长度为5到11位的单个数字:

^[0-9]{5,11}$
我还需要能够捕获具有相同数字格式的CSV输入列表。此输入的示例如下:

 0123456789,012345,012345678,01234567890
如何扩展早期的正则表达式以捕获其他逗号分隔的值?

使用:

^[0-9]{5,11}(?:,[0-9]{5,11})*$
其中:

  • (?:,[0-9]{5,11})*
    将数字的0倍或更多倍与5到11位数字匹配,前面加逗号
使用:

^[0-9]{5,11}(?:,[0-9]{5,11})*$
其中:

  • (?:,[0-9]{5,11})*
    将数字的0倍或更多倍与5到11位数字匹配,前面加逗号

只需要第二个可选组,其中有一个逗号。尝试:

^[0-9]{5,11}(,[0-9]{5,11})*$

只需要第二个可选组,其中有一个逗号。尝试:

^[0-9]{5,11}(,[0-9]{5,11})*$

删除起始和结束字符串ancors?@JvdV,则它将匹配长度超过11位的数字。一些锚定(到逗号,到字符串开始和结束)必须在那里。@realpoint,我想这是真的=)删除开始和结束字符串ancors?@JvdV然后它将匹配超过11位的数字。一些锚定(到逗号,到字符串开始和结束)必须在那里。@realponsign,我想这是真的=)