我正在寻找一个可以做到这一点的正则表达式: 我的文字:
"Blablabla {{ blabla1 }} blablablabla {{ blablabla2 {{ blabla3 }} }} blablabla"
我想提取什么:
"blabla1" and "blablabla2 {{ blabla3 }}"
有人有想法吗?
我尝试过:
"{{(.)*}}"
但它返回 "blabla1"
和 "blabla3"
您可以使用平衡组来计数和匹配此类嵌套结构。例如:
(?x) {{ ( (?: [^{}]+ | (?<open>{{) | (?<-open>}}) )* (?(open)(?!)) ) }}
这有嵌套,所以它不是常规语法。一些正则表达式引擎具有处理大括号匹配的扩展,但一般来说,最好的方法是简单地扫描字符串并在
List<string>
中累积输出,同时跟踪嵌套深度。
我测试一下。这个工作 “(?<={{).+?(?=({|}))"