【发布时间】:2020-01-20 23:21:03
【问题描述】:
我正在尝试使用使用正则表达式的脚本从 g-mail 消息中解析提取数据。让脚本的其余主要功能正常工作,但是有一个非常大的问题。
脚本仅从每个线程的第一条消息返回数据。我希望它从每个线程中的每条消息中返回数据,我一直在玩它,但到目前为止还没有运气。
任何帮助将不胜感激。
谢谢!
//var threads = GmailApp.getInboxThreads();
// Have to get data separate to avoid google app script limit!
var start = 0;
var threads = GmailApp.search("is:unread AND label:desc",0,100);
var sheet = SpreadsheetApp.getActiveSheet();
var result = [];
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
var content = messages[0].getPlainBody();
messages[0].markRead();
// implement your own parsing rule inside
if (content) {
var tmp;
tmp = content.match(/\b([A-B\d][A-B\d]{4})\b/);
var cod = (tmp && tmp[1]) ? tmp[1].trim() : 'Error';
tmp = content.match(/\b(\d+[R])/);
var prom = (tmp && tmp[1]) ? tmp[1].trim() : 'Error';
tmp = content.match(/\b(\d{2}\.\d{2}\)\b/);
var exp = (tmp && tmp[1]) ? tmp[1].trim() : 'Error';
sheet.appendRow([cod, prom, exp]);
Utilities.sleep(500);
}
}
}
【问题讨论】:
-
如果您不了解当前脚本的逻辑,则需要重新学习它。例如,您认为您的代码的这个 sn-p 是做什么的?
for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages();你读过官方文档推导出你使用的变量相关的类型和类吗? -
感谢@tehhowch 的回复对不起,我对此非常业余。这个脚本只为我编辑,但第一个代码不是为我创建的。我阅读了官方文档并多次更改了代码,但没有运气正常工作。这是我尝试过但没有运气的其他代码:codepile.net/pile/D2OG702E
标签: multithreading google-apps-script