regex使用python提取括号内的值和括号前的单词

2024-09-27 23:22:30 发布

您现在位置: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 

Tags: readdbtime详细信息单词括号total元组
1条回答
网友
1楼 · 发布于 2024-09-27 23:22:30

:上拆分并使用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')]

相关问题 更多 >

    热门问题