分隔的正则表达式的唯一的号码,我想验证一个逗号分隔的数字1-31唯一的(不重复)的列表。用逗号
即
- 2,4,6,7,1是有效的输入。
- 2,2,6-无效
- 2是有效
- 2,是无效
- 1,2,3,4,15,6,7,31有效
- 1,2, 3,4,15,6,7,32无效
20,15,3
我试图
^((([0]?[1-9])|([1-2][0-9])|(3[01]))(?!([0]?[1-9])|([1-2][0-9])|(3[01])*,\\1(?!([0]?[1-9])|([1-2][0-9])|(3[01]))
,但它接受重复号码
你为什么不通过分隔符分裂号码列表,然后在迭代的对象重复检查? – ctwheels
你的名单有固定数量的数字,它不能超过? ,无论如何,我会建议你打破这个问题,而不是在1个正则表达式中完成:可能只有一个正则表达式来验证逗号数字格式是否正确,然后在逗号上分割并通过循环来验证数字是否是唯一的一个hashset –
这感觉就像分裂成一个列表,并在那里做的行为会更好,不是一个很好的使用正则表达式 – sniperd