我有一个正则表达式,它匹配数字1、7和99的任意组合,用逗号分隔。例如,应与之相匹配:
1 1,7 1,99 99,1,7
虽然这些不应相匹配:
1, 8 8,99 ,7 1,7,99,
下面的工作很好,但可能会缩短,使更有效率?
/^(1|7|99)(,?(1|7|99)(,?(1|7|99))?)?$/
发布于 2015-02-11 19:38:32
您可以使用基于展望的regex:
/^(1|7|99)(?!.*?,\1)(?:,(?:1|7|99))*$/gm
RegEx演示
发布于 2015-02-11 19:43:35
/^(1|7|99)(,(1|7|99))*$/
使用球状上的测试用例进行测试
发布于 2015-02-11 21:09:26
修改@RidesTheShortBus的答案对所有测试用例都非常有效
^(1|7|99)(,(1|7|99){1})*$
测试这里
https://stackoverflow.com/questions/28462953
相似问题