gpt4 book ai didi

javascript - 如何捕获不对称表达末尾的重复组

转载 作者:行者123 更新时间:2023-12-03 03:10:01 25 4
gpt4 key购买 nike

我知道有很多关于捕获组的现有问题,我已经阅读了大约十几个,但我似乎无法解决我遇到的问题。我有一个这种形式的字符串:
{{第一个字符串/第二个字符串|{Thing1}|{Thing2}|{Thing3}|{Thing4}|}}
其中第一部分是固定的,但对于 {Thingx} 部分,可以是从 0 到 n 的任何位置。我想最终得到一系列
完整匹配
第一个字符串
第二根弦
事情1
事情2
事情3
事情4

我正在使用 regex101.com 进行测试。我有一个initial regex
/{{(.+?)\/(.+?)\|({.+?}\|)}}/
可以将所有 {Thingx} 片段捕获为一个组。然后我可以使用 second regex
/{(.*?)}\|/
来打破他们。是否有一个正则表达式可以完成这两个步骤?

最佳答案

依靠多场比赛而不是小组怎么样?您可以使用 bool OR | 在正则表达式中的一行中实现这一点。正则表达式是

{{([^\/]*)|\/(.*?)\||{(.*?)}

一个完整的例子可能是这样的

var str = '{{First String/Second String|{Thing1}|{Thing2}|{Thing3}|{Thing4}|}}';
var myRegexp = /{{([^\/]*)|\/(.*?)\||{(.*?)}/g;
var match = myRegexp.exec(str);
while (match != null) {
if (typeof match[1] != 'undefined') console.log(match[1])
if (typeof match[2] != 'undefined') console.log(match[2])
if (typeof match[3] != 'undefined') console.log(match[3])
console.log("---------------------------");
match = myRegexp.exec(str);
}

关于javascript - 如何捕获不对称表达末尾的重复组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com