我有一个大字符串:
Larry E Z(29岁)Larry E Z:嗨。感谢您联系TE,怎么可能 我帮你? (42s)Cesar Mendez:你好Larry(57s)Larry E Z:好 下午塞萨尔(1m 3s)Cesar Mendez:画作2098753(1m 12s) Cesar Mendez:9注意到什么? (1分18秒)Cesar Mendez:卑鄙( 2m 4s)Cesar Mendez:"密封能力必须在a 申请基础(2m 6s)Larry E Z:9没有特定的 含义。 (2分32秒)Cesar Mendez:这个 句子................."必须评估密封能力 申请基础" (3分3秒)Larry E Z:你的意思是注9(3m 14s)Cesar Mendez:......是(3分17秒)Larry E Z:好的(3分25秒)
我需要将字符串分成两个不同的列表 - 一个包含Larry E Z所说的一切,另一个包含Cesar Mendez。有办法吗?
答案 0 :(得分: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','好的']
['您好Larry','在绘图2098753','什么注意9 mena? ','意思是',' "密封能力必须在应用基础上评估,','这句话................."密封能力必须在申请的基础上进行评估" ',' ......是的']
答案 1 :(得分:0)
这不会将其分解为列表,但它会创建命名的捕获组,其中一个是名称。从那里你可以循环结果并列出一个列表。希望这会有所帮助,可能有一种方法可以在正则表达式中完成所有操作,但我现在无法弄明白。
(?<Person>Cesar Mendez|Larry E Z)[: ]{0,3}(?<text>.*?) ?\( ?(?<Time>.*?) ?\)