正则表达式使用python提取括号内的值和括号前的单词

时间:2015-07-22 15:11:24

标签: python

我想在括号内提取值,以及在它之前开始的单词。例如,在给定的文本文件中,我将具有以下详细信息:

Total DB read time : TDBT(56) TDTO(78) TDTC(567) TON(567) TOT(345) 

预期输出是元组或列表:

TDBT 56 TDTO 78 TDTC 567 TON 567 TOT 345 

1 个答案:

答案 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')]