正则表达式从字符串中查找子字符串

时间:2016-03-04 08:56:19

标签: regex python-2.7

我有像:

这样的字符串
str1 = eval(sum(feat(57),feat(57),feat(66))/feat(57));
str2 = eval(sum(feat(47),feat(55),feat(86)));
str3 = eval(feat(47)/sum(feat(51),feat(52),feat(53)));
str4 = eval(feat(63)/sum(feat(57):feat(66)));

我想写一个正则表达式,以得出:

str1_output = (feat(57),feat(57),feat(66))
str2_output = (feat(47),feat(55),feat(86))
str3_output = (feat(51),feat(52),feat(53))
str4_output = (feat(57):feat(66))

我尝试了以下方式:

output = re.findall(re.compile(r"sum.*"),str_name)

这提供了正确的输出,除了str1。

请建议我找出所需的输出方法。

1 个答案:

答案 0 :(得分:0)

我想你可以试试

sum\((?:\([^()]*\)|.)*?\)

它匹配sum和以下匹配的括号,以及它们之间的任何内容。

regex101处的示例。

问候。