JavaScript RegEx 集团

标签 javascript regex regex-group

我正在尝试解析以下字符串格式:

<id>:<name>[,<name>]*

举个例子,考虑 123:test,south-west,best,rest_well .

我编写了以下正则表达式:

/(\d+):([a-zA-Z0-9_\-]+)(?:,([a-zA-Z0-9_\-]+))*/

我的假设是(?:,([a-zA-Z0-9_\-]+))将捕获可选的附加名称(south-west、best 和rest_well)。但是,它仅捕获姓氏“rest_well”。

打印出的匹配:

'123:test,south-west,best,rest_well'.match(/(\d+):([a-zA-Z0-9_\-]+)(?:,([a-zA-Z0-9_\-]+))*/);
> ["123:test,south-west,best,rest_well", "123", "test", "rest_well"]

我所期待的:

> ["123:test,south-west,best,rest_well", "123", "test", "south-west", "best", "rest_well"]

我相信其他语言实际上会累积匹配的组,但不知何故这失败了。也许我遗漏了一个小细节。如有任何帮助,我们将不胜感激!

最佳答案

听起来您只想用 :, 分割字符串。这行得通吗?

var str = "123:test,south-west,best,rest_well";
var res = str.split(/:|,/);

输出

["123", "test", "south-west", "best", "rest_well"]

关于JavaScript RegEx 集团,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24332322/

相关文章:

javascript - 索引或大小为负或大于允许的数量(非负索引)

Javascript全局变量覆盖函数中的局部变量范围

javascript - 用三个js将图像(正面-背面)映射到球体上

java - ReplaceAll 具有定义的替换编号 Java

java - 带有可选子字符串的捕获组

r - 如何在 R 中提取这些多个正则表达式组

regex - 如果存在于 Google 电子表格中的单元格中,则提取多个值

javascript - 如何使用 JavaScript 在服务器上写入文件?

javascript - Greasemonkey 脚本,用于将具有特定域的页面上的所有 URL 替换为不同的域

regex - 如何在积极回顾后排除事件?