匹配被"{{"和“}}“

本文关键字:quot | 更新日期: 2023-09-27 18:17:36

我正在寻找一个正则表达式,可以做到这一点:我的文本:

"Blablabla {{ blabla1 }} blablablabla {{ blablabla2 {{ blabla3 }} }} blablabla"

我想提取的内容:

"blabla1" and "blablabla2 {{ blabla3 }}"

有人有主意吗?

我尝试了:"{{(.)*}}"但是它返回"blabla1""blabla3"

匹配被"{{"和“}}“

您可以使用平衡组来计数和匹配这些嵌套结构。例如:

(?x) {{ ( (?: [^{}]+ | (?<open>{{) | (?<-open>}}) )* (?(open)(?!)) ) }}

这有嵌套,所以它不是常规语法。一些正则表达式引擎有扩展来处理大括号匹配,但通常最好的方法是简单地扫描字符串并在List<string>中累积输出,同时跟踪嵌套深度。