私は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.
*テキスト全体に「*」があるかどうかをチェックしたい場合は、消費パターン部分と同様に先読みで '[^] *'を使う必要があります。すべての '。*'を '[^] *'に置き換えてみてください。 –
@WiktorStribiżewは、すべてのテキストをクリアして空白の結果を得ました。 –
はい、あなたの正規表現はマッチしました:) - 期待通りに動作します。 '[^] *'は欲張りで、*任意の*文字にマッチすることができます。要件を考え、投稿してください。今は、内容がどのように見えるか分からないので、あなたを助けることは不可能です。 –