匹配“{{”和“}}”所包围的文字

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

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

我要提取的内容:

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

有没有人有想法?

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

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

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

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