谷歌邮件应用程序脚本中的正则表达式困难 - 在两个单词之间选择单词

Regex difficulties in google mail app script - select word between two words

本文关键字:单词 两个 选择 之间 应用程序 脚本 正则表达式 谷歌      更新时间:2023-09-26

该脚本从电子邮件中读取纯文本,并将其发送到另一个函数以在电子表格中写入确切的值。

我的问题是从电子邮件纯文本中获取一些数据(日期,名称等(。

这是函数:

   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。其他导致脚本中出现语法错误。

这是我想获取日期,姓名,电话号码,电子邮件和地点的示例消息。

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

或者您是否建议使用谷歌脚本html函数从电子邮件中读取数据?这里

如果可以指定使用多行,则可以使用以下方法:

^start date's*(.+)

但是,这不包括接下来显示的查找日期。

否则,这对我有用:(您可能需要小心换行符(

start date's*(.+)'nfinish date

要包含'r'n您可以使用:

start date's*(.+)('r|'n)+finish date