javascript - 使用正则表达式捕获组一定次数,但最后一组有剩余值

标签 javascript regex

给定一个由冒号分隔的字符串,类似于此...

xvf:metric:admin:click

我需要捕获三个组...

xvf
metric
admin:click

或者另一个例子:

one:two:three:four:five:six:seven

one
two
three:four:five:six:seven

我当前的正则表达式只是分别捕获每个单词,导致 4 个匹配

/(\s*\w+)/gi

最佳答案

使用String.matchArray.slice函数的解决方案:

var str = "one:two:three:four:five:six:seven",
    groups = str.match(/([^:]+?):([^:]+?):(.+)?$/).slice(1);

console.log(groups);  // ["one", "two", "three:four:five:six:seven"]

关于javascript - 使用正则表达式捕获组一定次数,但最后一组有剩余值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37736195/

相关文章:

javascript - gulp 将 React 模块转换为类错误

javascript - 点击事件回调

javascript - FireFox 中未触发 Ember 操作

html - HTML解析-从.html文件获取和更新数据

c++ - 科学计数法数字的正则表达式?

C# 正则表达式匹配,但不写入值

r - 为什么\K 似乎消耗了基本 R 的 gsub 中的一个字符

Javascript Singleton 设计模式和闭包

javascript - 在 Javascript 中使用 Math random 生成大数

sql - 如何用 • 替换单词但仅显示第一个和最后一个字符