gpt4 book ai didi

Javascript正则表达式所有匹配

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

我试图通过正则表达式在我的源中找到一些东西,但我无法让它返回我需要的所有数据。我使用的正则表达式我已经在regex101上进行了测试我认为效果很好。

我的来源:

/**
* @author person1
* @author person2
*/

console.log('a');

我想要的是检索 person1 和 person2。

我的代码:

fs.readdir('./src', function (err, files) {
for (var i = 0; i < files.length; i++ ) {
var file = files[i];

fs.readFile('./src/' + file, { encoding: 'utf-8' }, function (err, data) {
if (err)
throw err;

var matches = (/@author (.*)$/gm).exec(data);
console.log(matches);
});
}
});

运行时仅返回 person1 而不是 person2。我的正则表达式是错误的还是我缺少什么?

最佳答案

RegExp 对象是有状态的,并保留最新匹配的索引,以便从那里继续。因此,您可能希望在循环中多次运行正则表达式。

var match, authors = [];
var r = /@author (.*)$/gm;
while(match = r.exec(data)) {
authors.push(match[1]);
}

您还可以使用data.match(...),但这不会提取匹配组。

关于Javascript正则表达式所有匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31447873/

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