【发布时间】:2022-01-17 14:06:37
【问题描述】:
我编写了一些代码来抓取两个大括号之间的所有内容以及大括号本身
strings = re.findall('\{{.*?\}}',string)
但是,如果字符串包含不匹配的括号,例如“John 来自 {{city},{{country}}”,这将无法正常工作。
有没有办法调整我的代码,使我只能抓住匹配的括号?
【问题讨论】:
我编写了一些代码来抓取两个大括号之间的所有内容以及大括号本身
strings = re.findall('\{{.*?\}}',string)
但是,如果字符串包含不匹配的括号,例如“John 来自 {{city},{{country}}”,这将无法正常工作。
有没有办法调整我的代码,使我只能抓住匹配的括号?
【问题讨论】:
您可以简单地使用字符类从“包含的字符串”中排除大括号:
strings = re.findall(r'\{\{[^{}]*\}\}', string)
【讨论】:
{{a string}} 匹配,但{{f"a {variable} in an f-string"}} 不匹配