/^(\S+)\s*(.*)$/与/^\S+\s*.*$/两个正则表达式的区别

这个是Backbonejs里面的一个正则表达式,测试结果如下
var str = "123 456 789",
exp = /^(\S+)\s*(.*)$/,
exp2 = /^\S+\s*.*$/;
str.match(exp); //["123 456 789", "123", "456 789"]
str.match(exp2); //["123 456 789"]

求解答具体区别。

如下:
/^(\S+)\s*(.*)$//^\S+\s*.*$/

上下对比不难看出,
第一个多了两对小括号

小括号在正则里面表示:
抓取括号里匹配到的字符,然后另外存储起来
并且解析小括号的顺序是 从左至右,
所以就得到了现在的数组结果
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答