我試圖洗掉所有句子,如果它們以特定字符開頭,直到斷行。到目前為止,我創建了這樣的東西,但它只洗掉了這些特定的字符而不是整行。我不擅長正則運算式,所以如果有人能給出一些提示,我將不勝感激
發件人:ABC, DEF <[email protected] [mailto:[email protected]]>
接下來的活動:
你好你好
發送時間:2011 年 2 月 28 日,星期四:22 PM
var cleanup = msg.replace(/From.|Sent.|To.|Cc.*\n/g, "");
電流輸出:
ABC、DEF <[email protected] [mailto:[email protected]]>
即將離職:
你好你好
2021 年 7 月 29 日星期四晚上 7:48
預期輸出:
即將離開辦公室:
你好你好
uj5u.com熱心網友回復:
您可以使用
text = text.replace(/^\s*(?:From|Sent|To|Cc)\b.*[\r\n]*\s*/gm)
或者,如果您還需要洗掉空行:
text = text.replace(/^(?:\s*(?:From|Sent|To|Cc)\b.*)?[\r\n]*\s*/gm)
請參閱正則運算式演示 #1和正則運算式演示 #2。詳情:
^- 一行的開始(m標志允許)\s*- 零個或多個空格(?:From|Sent|To|Cc)- 任何選擇\b- 一個詞邊界.*- 該行的其余部分[\r\n]*- 零個或多個 CR 或/和 LF 字符\s*- 零個或多個空格。
在第二個正則運算式中,該\s*(?:From|Sent|To|Cc)\b.*部分是可選的,以便在行開始后立即中斷任何 libe 都可以被消耗。
JavaScript 演示:
const text = "From: ABC, DEF <[email protected] [mailto:[email protected]]>\n\nUpcoming Events:\n\nHello hello\n\nSent: Thursday, February 28, 20117:22 PM";
const rx = /^(?:\s*(?:From|Sent|To|Cc)\b.*)?[\r\n]*\s*/gm;
console.log(text.replace(rx, ""));
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/337888.html
標籤:javascript 正则表达式
上一篇:正則運算式:如何獲取發布值?
