📅  最后修改于: 2023-12-03 15:11:31.528000             🧑  作者: Mango
当需要在一个字符串中找到第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。
以上就是本文介绍的内容,希望对你有所帮助。