gpt4 book ai didi

javascript - RegEx:在具有第二组和边界的 RegEx 中找到一个组的多次出现

转载 作者:行者123 更新时间:2023-11-30 19:11:32 25 4
gpt4 key购买 nike

例如:

foo for 2019:

month value
3 101
4 202
5 303

bar for xyz

是否可以仅通过一个正则表达式规则获取所有月份和年份?

要获取最后一个月,我会使用: /foo\sfor\s(?<year>20\d\d)[^]+\n+\s*(?<month>\d+)\s[^]+bar\sfor/gm

目标平台:nodeJS

最佳答案

你不能用一个正则表达式匹配操作来完成它。您需要先使用一个捕获组获取年份,然后将包含所有月份数据的所有文本捕获到第 2 组中,然后对第 2 组值运行另一个正则表达式,仅分别获取所有月份数字。

你可以使用

var text = "foo for 2019:\n\nmonth value\n    3   101\n    4   202\n    5   303\n\nbar for xyz";
var match = /foo\sfor\s(20\d\d):([^]+?)bar\sfor/.exec(text);
if (match) {
console.log("Year: ", match[1]);
var months = match[2].match(/\d+(?=[ \t]+\d)/gm);
console.log("Months: ", months);
}

关于javascript - RegEx:在具有第二组和边界的 RegEx 中找到一个组的多次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58410443/

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