如何正确解析右括号

时间:2015-11-10 19:49:15

标签: python regex python-2.7 parsing

我试图用以下命令解析字符串中的所有括号:

\((.+)\)

但不知道我应该如何重写下一个字符串的命令:

  

(你必须)争取你的权利(参加派对)

我想提取(你得)(对派对)

1 个答案:

答案 0 :(得分:4)

您需要使用否定字符类而不是.+,然后使用re.findall()

>>> s="(You Gotta) Fight For Your Right (to Party)"
>>> 
>>> import re
>>> re.findall(r'\(([^()]+)\)',s)
['You Gotta', 'to Party']

请注意,这里你的正则表达式将匹配开括号和闭括号之间的所有内容,它将包含以下部分:

(You Gotta) Fight For Your Right (to Party)
^-------this part will be matched --------^

但是通过使用否定字符类[^()]+,它将匹配括号之间的所有内容,但括号文字除外。它使正则表达式引擎在每个结束括号处停止。

(You Gotta) Fight For Your Right (to Party)
^         ^                      ^        ^