【发布时间】:2011-12-03 12:06:33
【问题描述】:
我有这个代码:
var r = /(?:^\s*([^\s]*)\s*)(?:,\s*([^\s]*)\s*){0,}$/
var s = " a , b , c "
var m = s.match(r)
m => [" a , b , c ", "a", "c"]
看起来整个字符串都已匹配,但"b" 去哪儿了?我宁愿期望得到:
[" a , b , c ", "a", "b", "c"]
这样我就可以使用m.shift() 得到类似s.split(',') 的结果,但也可以删除空格。
是我的正则表达式有误还是我误解了String.prototype.match?
【问题讨论】:
-
附带说明,
{0,}与*相同。 -
好吧,
s也可能是' a, c'或'a,b,c d e, f' -
我将空格改为\s
标签: javascript regex