如何在Python中的括号内获取文本?

问题描述 投票:0回答:1

我想在里面找到一个文本

(German: [ˈadɔlf ˈhɪtlɐ] (About this sound listen); 20 April 1889 – 30 April 1945) in a paragraph

预期产量:

German: [ˈadɔlf ˈhɪtlɐ] (About this sound listen); 20 April 1889 – 30 April 1945

我在用:

s[s.find("(")+1:s.find(")")] 

但结果如下:

(German: [ˈadɔlf ˈhɪtlɐ] ( listen
python-2.7 python-3.x python-textprocessing
1个回答
0
投票

你的问题是s.find(")")匹配它在s中找到的第一次出现的“)”,而你想要的是最后一次。你可以使用rfind找到字符串“)”的最后一次出现:

s = "(German: [ˈadɔlf ˈhɪtlɐ] (About this sound listen); 20 April 1889 – 30 April 1945)"

s[s.find("(")+1:s.rfind(")")]
#German: [ˈadɔlf ˈhɪtlɐ] (About this sound listen); 20 April 1889 – 30 April 1945

如果要访问括号内层,只需再次执行上一步:

text = s[s.find("(")+1:s.rfind(")")]
text[text.find("(")+1:text.rfind(")")]
#About this sound listen
© www.soinside.com 2019 - 2024. All rights reserved.