首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript RegEx集团集团

JavaScript RegEx集团集团
EN

Stack Overflow用户
提问于 2014-06-20 17:05:55
回答 1查看 43关注 0票数 0

我试图解析以下字符串格式:

代码语言:javascript
运行
复制
<id>:<name>[,<name>]*

例如,以123:test,south-west,best,rest_well为例。

我编写了以下regex:

代码语言:javascript
运行
复制
/(\d+):([a-zA-Z0-9_\-]+)(?:,([a-zA-Z0-9_\-]+))*/

我的假设是,(?:,([a-zA-Z0-9_\-]+))将捕获可选的附加名称(西南、最佳和rest_well)。但是,它只捕获姓氏'rest_well‘。

打印出来的火柴:

代码语言:javascript
运行
复制
'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"]

我期待的是:

代码语言:javascript
运行
复制
> ["123:test,south-west,best,rest_well", "123", "test", "south-west", "best", "rest_well"]

我相信其他语言实际上会积累匹配的组,但不知怎么的,这是失败的。也许我错过了一个小细节。任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-20 17:15:44

听起来你只是想用:,来分割字符串。这个能行吗?

代码语言:javascript
运行
复制
var str = "123:test,south-west,best,rest_well";
var res = str.split(/:|,/);

输出

代码语言:javascript
运行
复制
["123", "test", "south-west", "best", "rest_well"]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24332322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档