4

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

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

我要提取的内容:

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

有人有想法吗?

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

4

2 回答 2

10

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

(?x) {{ ( (?: [^{}]+ | (?<open>{{) | (?<-open>}}) )* (?(open)(?!)) ) }}
于 2013-06-08T20:49:11.750 回答
2

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

于 2013-06-08T20:50:58.017 回答