簡體   English   中英

如何在字符串“ On x John write:”之后剝離所有內容

[英]How to strip everything after the pattern “On x John wrote:” in a string

我有一個很大的字符串(來自閱讀電子郵件)。 現在,當用戶答復時,典型的答復如下所示:

"On x x x wrote:"

我想刪除此模式之后的所有文本。 但是,我不確定如何識別此模式。

我知道如何在特定字詞或字符后刪除所有內容:

abc = abc.split('From:', 1)[0]

但是,當在“ On和“ wrote: ”模式之間插入文本時,該怎么辦?

樣品:

\r\nOn Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:\r\n

正則表達式將對此進行排序:

re.match(r"\r\nOn.+wrote:", email)[0]

^表示字符串的開頭
On這個詞“開”
.+是任何事物的一個或多個實例
wrote:是單詞“寫”

最后的[0]將從電子郵件中的第一個匹配郵件中刪除email.strip()刪除空格

例:

import re

email =  '\r\nOn Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:\r\n'
extracted = re.match(r"On.+wrote:", email.replace('\r', '').replace('\n', ''))[0]
print(extracted)

Out[163]: 'On Tue, Feb 12, 2019 at 1:11 PM +0100, "Name" <email@email.com<mailto:email@email.com>> wrote:' 

正則表達式的另一種選擇是找到單詞“ On”首次出現的索引和單詞“ wrote”的索引,然后將整個文本分為以下兩個子集:

extracted = email[email.find('On'):email[email.find('On'):].find('wrote:')+8]

abc.split(“ on。* wrote:”)[1]

https://regexr.com這是一個學習正則表達式的好網站!

您可以使用正則表達式,然后在完全匹配時將其拆分。 您可以使用/ On / regex / From:/,其中regex是檢測“ xxx”的正則表達式。

可以在文檔中找到更多信息: 在此處輸入鏈接描述

您可以使用以下正則表達式查找模式:

 /(?:On\ x\ x\ x\ wrote\:)/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM