2017-04-04 11 views
2

私はOutlook APIを使用して、送信されたメールの本文を取得します。今、私はボディをきれいにして、すべてのリンクやヘッダーなどを削除し、ユーザーが書き込んだテキストだけを残したいと思っています。ユーザーが投稿したテキストを除くすべてを削除します

function getRegex() { 

    var regex1 = /^(?=.*Forwarded message)[^]*/m; 
    var regex2 = /^(?=.*From:)[^]*/m; 
    var regex3 = /^(?=.*On)[^]*/m; 
    var regex4 = /^(?=.*http)[^]*/m; 

    return new RegExp("(" + regex1.source + ")|(" + regex2.source + ")|(" + regex3.source + ")|(" + regex4.source + ")"); 
} 

後は、Outlookから送信された電子メールを取得するための機能である:私はまだすべてのリンク、ヘッダなど

を取得しています

outlook.mail.getMessages({ 
    token: token.token.access_token, 
    odataParams: queryParams, 
    folderId: 'SentItems' 

}, function (err, result) { 

    if (err){ 
     console.log(err); 
     return; 
    } 

    var mail_array = result.value; 
    var outlook_sent_emails = ''; 

    mail_array.forEach(function (mail) { 

     if (mail.BodyPreview !== '') { 
      outlook_sent_emails += (mail.BodyPreview + " "); 
     } 
    }); 

    console.log(outlook_sent_emails.replace(getRegex(), "")); //This is not working 
}); 

このラインconsole.log(outlook_sent_emails.replace(getRegex(), ""));ショー私の正規表現関数であり、以下の同じ正規表現が私のコードのどこかで動作しています。

EDITED:

サンプルテキスト:

From: <Name> 
    Sent: <Datetime> 
    To: <Name> 
    Subj Dear Sir/Madam 


Hi Vaibhav, 

Hope you are doing well. 

http://developer.android.com/sdk/index.html 

Sent from my Windows 10 phone 

私は文字列から次のようにのようなリンクやテキストのすべての種類を削除する:

From: <Name> 
Sent: <Datetime> 
To: <Name> 
Subj Dear Sir/Madam 

予想される出力:

Hi Vaibhav, 

Hope you are doing well. 
+0

*テキスト全体に「*」があるかどうかをチェックしたい場合は、消費パターン部分と同様に先読みで '[^] *'を使う必要があります。すべての '。*'を '[^] *'に置き換えてみてください。 –

+0

@WiktorStribiżewは、すべてのテキストをクリアして空白の結果を得ました。 –

+0

はい、あなたの正規表現はマッチしました:) - 期待通りに動作します。 '[^] *'は欲張りで、*任意の*文字にマッチすることができます。要件を考え、投稿してください。今は、内容がどのように見えるか分からないので、あなたを助けることは不可能です。 –

答えて

2

UPDATE:HTTP

を追加しましたあなたはこの試みることがあります。

^.*(From:|Sent:|Sent\s+From|To:|Subj|Dear\s+(Sir|Madam)|http).*$ 

をして ""

Demo

const regex = /^.*(From:|Sent:|Sent\s+From|To:|Subj|Dear\s+(Sir|Madam)|http).*$/gmi; 
 
const str = ` From: <Name> 
 
    Sent: <Datetime> 
 
    To: <Name> 
 
    Subj Dear Sir/Madam 
 

 

 
Hi Vaibhav, 
 

 
Hope you are doing well. 
 

 
http://developer.android.com/sdk/index.html 
 

 
Sent from my Windows 10 phone`; 
 
const subst = ``; 
 
const result = str.replace(regex, subst).trim(); 
 
console.log(result);
012で置き換えます

+0

最新のサンプルI/O –

+0

おい、それは本当に働いた。Thanks @Rizwan M. Tuman –

+0

@Vaibhav Agarwal、それはあなたのために働いたことを知ってうれしい..私はあなたが知っていると思う、あなたがそれを適用したいメール: –

関連する問題