python - 如何正确解析右括号

标签 python regex python-2.7 parsing

我正在尝试使用以下命令解析字符串中的所有括号:

\((.+)\)

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

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

我想同时提取(You Gotta)(to Party)

最佳答案

你需要一个否定的字符类而不是 .+ 然后使用 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)
^         ^                      ^        ^

关于python - 如何正确解析右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638327/

相关文章:

python - 当我有大量数组时检查重复数组

python - 如果您要用 Python 克隆《大富翁大亨》,您会使用哪些库?

javascript - 找到开始字符串的制表符数量的最佳/最快方法是什么?

python - 进行大整数计算时python3出现奇怪错误

javascript - 检查字符串是否以范围内的数字开头

.Net Regex Lookahead Group with\Z(行尾)异常

json - Python & JSON : ValueError: Unterminated string starting at:

python-2.7 - BeamSearch 在 Tensorflow 中花费了很长时间

python - 取消嵌套 Numpy 数组

python - 如何创建 Kivy 文件 (.kv)