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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python中的括号内获取文本?相关的知识,希望对你有一定的参考价值。

我想在里面找到一个文本

(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
答案

你的问题是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

以上是关于如何在Python中的括号内获取文本?的主要内容,如果未能解决你的问题,请参考以下文章