2017-08-10 64 views
0

我有一封电子邮件,其中附有数据发送给我。我想抓住这些数据并将其放入Google表格中。我有大多数代码工作的唯一问题是我不是那么精通的正则表达式区域。使用Google脚本解析Gmail电子邮件并将其传递给Google表格

这里是电子邮件的HTML snipet。

<table class="m_4348561758375603924m_886074067026015045MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="408" style="width:306.0pt;border-collapse:collapse"> 
<tbody> 
    <tr style="height:31.5pt"> 
     <td width="196" nowrap style="width:147.0pt;border:solid windowtext 1.0pt;background:yellow;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt"> 
      <p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:24.0pt;font-family:宋体;color:black">Date<u></u><u></u></span></b></p> 
     </td> 
     <td width="212" nowrap style="width:159.0pt;border:solid windowtext 1.0pt;border-left:none;background:yellow;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt"> 
      <p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:24.0pt;font-family:宋体;color:black">Reset Code<u></u><u></u></span></b></p> 
     </td> 
    </tr> 
    <tr style="height:31.5pt"> 
     <td width="196" nowrap style="width:147.0pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt"> 
      <p class="MsoNormal" align="left" style="text-align:left"><strong><span lang="EN-US" style="font-size:24.0pt;font-family:宋体;color:black">2017.8.10<u></u><u></u></span></strong></p> 
     </td> 
     <td width="212" nowrap style="width:159.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt"> 
      <p class="MsoNormal" align="left" style="text-align:left"><strong><span lang="EN-US" style="font-size:24.0pt;font-family:宋体;color:black">123456<u></u><u></u></span></strong></p> 
     </td> 
    </tr> 
    <tr style="height:31.5pt"> 
     <td width="196" nowrap style="width:147.0pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt"> 
      <p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:24.0pt;font-family:宋体;color:black">2017.8.11<u></u><u></u></span></b></p> 
     </td> 
     <td width="212" nowrap style="width:159.0pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:31.5pt"> 
      <p class="MsoNormal" align="left" style="text-align:left"><strong><span lang="EN-US" style="font-size:24.0pt;font-family:宋体;color:black">123456<u></u><u></u></span></strong></p> 
     </td> 
    </tr> 
</tbody> 
</table> 

,我需要的数据是2017年8月10日是123456这始终是6个字符,日期是成对的日期和它的代码。

这是我的Google脚本代码。

function onOpen() { 
    var ui = SpreadsheetApp.getUi(); 
    ui.createMenu('Date Code') 
     .addItem('Get Codes','DateCode') 
     .addToUi(); 
} 

function DateCode() {  
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var label = GmailApp.getUserLabelByName("Inbox RC"); 
    var threads = label.getThreads(); 

    for (var i = 0; i < threads.length; i++) {  
    var tmp, 
     message = threads[i].getMessages()[0], 
     subject = message.getSubject(), 
     content = message.getPlainBody(); 

    if (content) {  
     tmp = content.match(2017); 
     var comment = (tmp && tmp[1]) ? tmp[1] : 'No Code Found!'; 

     sheet.appendRow([comment]);  
    } 
} 

注*收件箱RC是此电子邮件通过Gmail上的过滤器发送到的文件夹。

我需要帮助的地方在线tmp = content.match(2017); 其中2017会有我需要的代码以获取代码和日期。我会提取两个日期与他们的代码两个dif。领域。我可以在稍后处理,只需在脚本运行后获取正确的数据。它提取单词和数字,但它不搜索我想要的,因为它搜索整个文件夹Ibox RC。

回答

0

你只需要一个正则表达式来匹配你知道的日期格式?怎么样是这样的:http://regexr.com/3ghlh

+0

怎么样的代码?我如何获取代码? –

0
/>(\d{4}\.\d{1,2}\.\d{1,2})<|>(\d+)</g 

https://regex101.com/r/qFHLGK/1

是这样的正则表达式 - 你必须把它分成对后... How do you split an array into array pairs in JavaScript?

+0

虽然你的答案越过了链接帮了很多书签!现在我更了解正则表达式,足以让我的脚湿润。 现在清理我的代码,并确保我可以捕获日期和代码。谢谢! –

+0

我应该说,将数据推入正确的列。 Google让代码变得简单! –

+0

如果这为你工作,我会很感激你接受答案:) – jdubjdub

相关问题