【发布时间】:2017-09-13 15:43:45
【问题描述】:
我试图弄清楚如何在以下 url 字符串中的 comma-separated 值上重复捕获组:
id=1,2;name=user1,user2,user3;city=Oakland,San Francisco,Seattle;zip=94553,94523;
我正在使用这个RegExp,这是我想要的返回结果,除了值,因为它们是动态的,即。在 url 参数中可能是 2、3、4 等用户,我想知道是否可以为每个值创建一个捕获组,而不是 user1,user2,user3 作为一个捕获组。
正则表达式: (^|;|:)(\w+)=([^;]+)*
这是使用 RegExp
在线进行的现场演示示例输出:
- Group1 -(分号,冒号)
- Group2 -(密钥,即 id、name、city、zip)
- Group3 - (value1)
- Group4 - (value2) *如果存在
- Group5 - (value3) *如果存在
- Group6 - (value4) *如果存在
等等...基于我之前解释的动态值。
问题:我的表达有什么问题我使用 * 循环重复模式?
【问题讨论】:
-
您的预期输出是什么?我认为这可以在不使用正则表达式的情况下完成。
-
您是否期望得到如下结果:
{ "id": ["1", "2"], "name": ["user1", "user2", "user3"], "city": ["Oakland", "San Francisco", "Seattle"], "zip": ["94553", "94523"] }? -
@ibrahimmahrir 我在上面给出了示例输出,这些值是动态的,如
user1,user2,etc...所以基本上希望每个值都在它自己的capture-group -
不!我说的是最终输出而不是正则表达式的输出。您希望数据最终看起来如何?
-
这是你想要做的regex101.com/r/2HQ8dv/2
标签: javascript regex capture-group