📜  第N个括号中所有数字的总和(1)

📅  最后修改于: 2023-12-03 15:11:31.528000             🧑  作者: Mango

第N个括号中所有数字的总和

当需要在一个字符串中找到第N个括号中所有数字的总和时,我们可以使用正则表达式来解决这个问题。

import re

def sum_of_numbers_in_nth_parenthesis(text, n):
    pattern = r'\(([0-9]+)\)' * n
    regex = re.compile(pattern)
    matches = regex.findall(text)
    if n > len(matches):
        return None
    numbers = map(int, matches[n-1])
    return sum(numbers)

使用示例:

text = "I have 3 apples and 5 oranges, (12), (7, 8, 9), (6, 2, 4, 1, 3)"
assert sum_of_numbers_in_nth_parenthesis(text, 2) == 24

上述代码中,我们使用了正则表达式来匹配第N个括号中的数字。我们首先定义了一个模式,其中 \(([0-9]+)\) 匹配单个括号中的一个或多个数字。我们将这个模式重复N次,构成一个新的模式,表示要匹配第N个括号。然后我们使用 re.compile 函数来编译这个模式,并使用 findall 方法来获取字符串中所有匹配的子串。最后,我们将每个子串中的数字提取出来,计算它们的总和。如果第N个括号不存在,则返回None。

以上就是本文介绍的内容,希望对你有所帮助。