如何获取 Python 中括号内的文本?
How to get a text within parenthesis in 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
我正在尝试在
内获取文本(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