[英]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.