gpt4 book ai didi

javascript - 使用正则表达式提取电子邮件字段

转载 作者:行者123 更新时间:2023-11-29 10:55:15 25 4
gpt4 key购买 nike

我正在尝试使用此代码提取“电子邮件”

const regex3 = /Email',\r\n      value: '([^']*)',/gm;
var content3 = fs.readFileSync('message.txt')
let m3;

while ((m3 = regex3.exec(content)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m3.index === regex3.lastIndex) {
regex3.lastIndex++;
}

// The result can be accessed through the `m`-variable.
m3.forEach((match, groupIndex) => {
fs.appendFileSync('messagematch.txt', m3[1] + '\n');
});
}

来自这个文件

 },
MessageEmbedField {
embed: [Circular *2],
name: 'Email',
value: 'user@gmail.com',
inline: true
},
MessageE

正则表达式代码适用于记事本,但不适用于我的脚本。我缺少什么?

最佳答案

我建议以几种方式更改您的正则表达式,以使其更健壮和容错。

首先,在电子邮件中包含初始单引号,以避免意外捕捉到有人可能将“电子邮件”一词作为值的其他字段。

其次,使用 \r?\n 来捕获 Windows 和 Unix 风格的行尾。我怀疑这可能是您问题的很大一部分,但不能确定。

第三,使用\s+ 而不是专门包含一些空格。这将有助于避免由微小的格式更改引起的问题。

最终的正则表达式如下所示:

const regex = /'Email',\r?\n\s+value: '([^']*)',/gm

关于javascript - 使用正则表达式提取电子邮件字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58884928/

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