我正在使用Python的正则表达式模块,而我正在尝试提取包含在括号之间的多行文本部分。以下是一些示例文本:
function name1 (
arg1,
arg2,
arg3
);
function name2 (
arg1,
arg2,
arg3
);
以下模式确实有效,但它总是找到最后一个右括号(函数名称2)而不是第一个:
re.findall('(?<=\()(.*)(?=\))', text, re.MULTILINE | re.DOTALL)
如何修改模式,以便匹配第一个右括号?
答案 0 :(得分:1)
将正则表达式更改为此,请在?
使其成为非贪婪搜索后注意*
:
>>> re.findall('(?<=\()(.*?)(?=\))', text, re.MULTILINE | re.DOTALL)
['\n arg1,\n arg2,\n arg3\n', '\n arg1,\n arg2,\n arg3\n']