2017-10-17 99 views
-2

我有一個大的字符串:蟒蛇正則表達式/分兩個名字之間的串

拉里·êZ(-29)拉里·êZ:你好。感謝您與TE聯繫,我如何幫助您 ? (42s)Cesar Mendez:拉里你好(57s)Larry E Z:很好 下午Cesar(1m 3s)Cesar Mendez:在素描2098753(1m 12s) Cesar Mendez:請注意9 mena? (1分18秒)Cesar Mendez:意思是( 2分4秒)Cesar Mendez:「密封能力必須在 申請基礎上評估(2分6秒)Larry EZ:9沒有具體的 含義。(2分32秒)Cesar Mendez :這 句子.................「密封能力必須在 應用基礎上評估」(3m 3s)Larry EZ:你的意思是註釋9(3m 14s)塞薩爾·門德斯:......是(3M 17S)拉里EZ:好(3M 25S)

我需要將字符串分割成兩個不同的名單 - 一個一切拉里EZ說,一個與塞薩爾·門德斯有一種方式?

+0

這裏是否有換行符?你是否嘗試過簡單地在冒號上分開? –

+1

歡迎來到SO。不幸的是,這不是一個教程服務,請花時間閱讀[問]和它包含的鏈接Python文檔非常好,並且有很多好的在線regex教程,還有一些很好的python flavouredonline正則表達式測試器可以幫助你構建你的模式 - 比如regex101.com – wwii

回答

1

通過正則表達式,您可以抓住所有這些元素。

import re 

# input text 
text="""Larry E Z (29s) Larry E Z: Hi. Thank you for contacting TE, how may I help you? (42s) Cesar Mendez : Hello Larry (57s) Larry E Z: Good Afternoon Cesar (1m 3s) Cesar Mendez : on drawing 2098753 (1m 12s) Cesar Mendez : what does note 9 mena? (1m 18s) Cesar Mendez : mean (2m 4s) Cesar Mendez : "sealing capability must be evaluated on an application basis (2m 6s) Larry E Z: The 9 does not have a specific meaning. (2m 32s) Cesar Mendez : this sentence................."sealing capability must be evaluated on an application basis" (3m 3s) Larry E Z: You are meaning Note 9 (3m 14s) Cesar Mendez : ... yes (3m 17s) Larry E Z: Ok (3m 25s)""" 

# regex for Larry 
patt1 = re.compile('Larry E Z:(.*?)\(') 
larry = patt1.findall(text) # get all Larry's part as list 
print(larry) 

# regex for Cesar 
patt2 = re.compile('Cesar Mendez :(.*?)\(') 
cesar = patt2.findall(text) # get all Cesar's 
print(cesar) 

輸出:

[」您好。感謝您與TE聯繫,我可以如何幫助您? ','下午好Cesar','9沒有特定的含義。 ','你的意思是注意9','確定']

['你好拉里','在繪圖2098753','注9是什麼? ','是指',''密封能力必須在申請基礎上評估','這句話.................'密封能力必須在申請基礎上評估「 ','...是']

0

這不會將它按個人劃分成列表,但它會創建命名捕獲組,其中一個是名稱。從那裏你可以遍歷結果並製作一份清單。希望這會有所幫助,可能有一種方法可以在正則表達式中完成,但目前我無法弄清楚。

(?<Person>Cesar Mendez|Larry E Z)[: ]{0,3}(?<text>.*?) ?\(?(?<Time>.*?) ?\)