该脚本从电子邮件中读取纯文本并将其发送到另一个函数,以在电子表格中写入确切的值。
我的问题是从电子邮件纯文本中获取一些数据(日期,名称等)。
这是功能:
var threads = GmailApp.search('label:aoaoaoaoa');
Logger.log(threads);
Logger.log(threads[0].getMessages());
Logger.log(threads[0].getMessages().length);
var messages;// = threads[0].getMessages();
var ContentEmail;// = messages[0].getBody();
var bodyRe = new RegExp("(?=start date)(.*)(?=finish date)");
for (var i = 0; i < threads.length; i++) {
messages = threads[i].getMessages()
ContentEmail = messages[0].getPlainBody();
var myArray = bodyRe.exec(ContentEmail);
Logger.log(myArray);
myArray为null。 我尝试了许多正则表达式来获取两个单词之间的文本。其中一些返回null。其他人在脚本中引起了SyntaxError。
这是一个示例消息,我想获取日期,姓名,电话号码,电子邮件和地点。
Confirmation Code: CAXNA3JAA Tue, October 01, 2013
start date Tue, October 08, 2013
finish date
Place: AOA Studio <http://www.**********************>
[image: Ali] <http://www.**********************>
Ali <http://www.***************************>
+49 000 000 00000
******@gmail.com
或者您是否建议使用google脚本html函数从电子邮件中读取数据? Here
答案 0 :(得分:0)
如果您可以使用多行指定,则可以使用以下内容:
^start date\s*(.+)
但是,这不包括下次显示查找日期。
否则,这对我有用:(你可能要小心换行符)
start date\s*(.+)\nfinish date
要包含\r
或\n
,您可以使用:
start date\s*(.+)(\r|\n)+finish date