[英]RegExp: Match repeating sequence pattern of numbers
我想写一个匹配的东西像一个正则表达式01, 03, 05-08, 10
但不匹配01, 03, 05-08,
因为SQUENCE已与多家结束)。
因此,基本上我的“字符串”由/(\\-?\\d+)\\-(\\-?\\d+)/
(例如01-05或-5-10)组成,该模式的每个实例都用逗号分隔。
我在RegExr上尝试了很长时间,但是找不到解决我问题的方法。 这是我的尝试: http : //regexr.com?34hh1
使用RegExp我想执行SEQUENCE_EXP.test('some string')。
您可以使用$
运算符指示字符串必须以表达式结尾。 在您的情况下,您可以尝试:
/^((-?\d+(-\d+)?)\s*,\s*)+(-?\d+(-\d+)?)$/
请注意,您不必在方括号之外转义-
。
因此,您有两种模式,有效数字\\d+
和\\d+-\\d+
那么NUMBER_PATTERN
必须是\\d+(-\\d+)?
还有一个序列NUMBER_PATTERN[, NUMBER_PATTERN]*
那这个呢:
/\d+(-\d+)?(, \d+(-\d+)?)*$/
function test(r){
return "01, 03, 05-08, 10".match(r) &&
!"01, 03, 05-08,".match(r)
}
test(/^(\d+(-\d+)?,\s*)*\d+$/)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.