我想在括号内提取值,以及在它之前开始的单词。例如,在给定的文本文件中,我将具有以下详细信息:
Total DB read time : TDBT(56) TDTO(78) TDTC(567) TON(567) TOT(345)
预期输出是元组或列表:
TDBT 56 TDTO 78 TDTC 567 TON 567 TOT 345
答案 0 :(得分:1)
在:
上拆分,并使用()
str.translate
空格
s = "Total DB read time : TDBT(56) TDTO(78) TDTC(567) TON(567) TOT(345)"
spl = s.split(":")[1].translate({ord("("):" ",ord(")"):" "}).split()
['TDBT', '56', 'TDTO', '78', 'TDTC', '567', 'TON', '567', 'TOT', '345']
或使用str.replace
:
s="Total DB read time : TDBT(56) TDTO(78) TDTC(567) TON(567) TOT(345)"
spl = s.split(":")[1].replace("("," ").replace(")"," ").split()
print(spl)
如果你想要配对,你可以使用re:
s="Total DB read time : TDBT(56) TDTO(78) TDTC(567) TON(567) TOT(345)"
import re
r = re.compile("(\w+)\((\d+)\)")
print(r.findall(s))
[('TDBT', '56'), ('TDTO', '78'), ('TDTC', '567'), ('TON', '567'), ('TOT', '345')]