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

时间:2017-06-23 22:18:29

标签: python-2.7 python-3.x python-textprocessing

我想在

中找到一个文本
(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

1 个答案:

答案 0 :(得分: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