以下是一个示例代码,演示如何捕获外部括号组,同时忽略内部括号组:
import re
# 定义一个包含外部括号组的字符串
string = "This (is (a) test) string"
# 使用正则表达式进行匹配
pattern = r"\((?:[^()]|(?R))*\)"
matches = re.findall(pattern, string)
# 打印匹配结果
for match in matches:
print(match)
运行上述代码,输出结果为:
(is (a) test)
在上述示例中,我们使用了正则表达式模式r"\((?:[^()]|(?R))*\)"
来匹配外部括号组。该模式的含义如下:
\(
:匹配左括号(?:[^()]|(?R))*
:匹配任意数量的不包含括号的字符,或者递归地匹配整个正则表达式模式(即匹配内部括号组)\)
:匹配右括号re.findall()
方法用于找到所有匹配的字符串,并将其存储在matches
列表中。然后,我们遍历matches
列表,打印每个匹配的外部括号组。
请注意,这只是一个示例,具体解决方法可能因实际需求而有所变化。