[英]Parsing Gmail Email using Google Scripting and passing that to Google Sheets
我有一封包含數據的電子郵件。 我想獲取這些數據並將其放入Google表格中。 我的大多數代碼都在工作,唯一的問題是我不那么精通的正則表達式區域。
這是電子郵件的HTML代碼段。
<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。
您只需要一個正則表達式來匹配您知道的日期格式? 這樣的事情怎么樣: http : //regexr.com/3ghlh
/>(\d{4}\.\d{1,2}\.\d{1,2})<|>(\d+)</g
https://regex101.com/r/qFHLGK/1
這就是正則表達式-您必須在之后將其拆分為對... 如何在JavaScript中將數組拆分為數組對?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.