2016-11-11 60 views
1

晚上好。
在Google應用程序腳本中存在正則表達式換行符(「\ n」)的問題。我使用.getbody()方法對郵件的解析,並得到一些這谷歌應用腳​​本,來自Gmail的getBody(),正則表達式 n

<td valign="middle" width="43" align="left"> 
<img src="http://img/mail-new-oct/icon2.png" style="display: block; vertical-align: middle;" alt="Logo"> 
</td> 
<td align="center" valign="top" style="font-family: 'Open Sans', Helvetica, 'Helvetica Neue', Arial, sans-serif; font-size: 13px; line-height: 30px; color: #000000; font-weight: 400; text-align: left;">0972398182 
</td> 

對於這一部分,我需要的電話號碼0972398182. 我嘗試用這個表達式得到它:

icon2.*\n.*\n.*>\s*([\s\S]+?)\s*(?=<\/td>) 

icon2 - 是這個html body的唯一標識,所以我需要使用它們。
以這種方式無法通過(「\ n」)不可能,最後它不起作用。我讀到,GAS不適用於(「\ n」),但也許有其他方式如何解決這個問題?
將不勝感激任何幫助,謝謝!

+0

使用'\ v'匹配換行符。像'icon2。* \ v。* \ v。*> \ s *(。+?)\ s * \ v * \ s *(?= <\/td>)' –

+0

試過,結果相同:( – Twil

+0

即使您使用' \ v +'而不是'\ v'? –

回答

1

你似乎有一個組合你的輸入字符串中的換行符和回車符。這意味着您可以使用[\r\n]+字符等級與+量詞:

icon2.*[\r\n]+.*[\r\n]+.*left.*>\s*(.+?)\s*(?=<\/td>)