RegEx:在括号内获取文本

时间:2014-02-03 19:37:40

标签: python regex

我正在使用Python的正则表达式模块,而我正在尝试提取包含在括号之间的多行文本部分。以下是一些示例文本:

function name1 (
    arg1,
    arg2,
    arg3
);

function name2 (
    arg1,
    arg2,
    arg3
);

以下模式确实有效,但它总是找到最后一个右括号(函数名称2)而不是第一个:

re.findall('(?<=\()(.*)(?=\))', text, re.MULTILINE | re.DOTALL)

如何修改模式,以便匹配第一个右括号?

1 个答案:

答案 0 :(得分:1)

将正则表达式更改为此,请在?使其成为非贪婪搜索后注意*

>>> re.findall('(?<=\()(.*?)(?=\))', text, re.MULTILINE | re.DOTALL)
['\n    arg1,\n    arg2,\n    arg3\n', '\n    arg1,\n    arg2,\n    arg3\n']