正则表达式 - 查找由双花括号(`{{text}}`)包围但不包含三个括号('{{{text}}}')的文本

时间:2017-12-04 14:52:19

标签: regex

我正在解析Handlebars.Net的电子邮件内容。用例就是这样:

string template = "{{I should be found}} but {{{I shouldn't}}}";

我认为我需要使用前瞻和外观的一些组合来找到这些标签,但我不能让它工作。我已经创建了一个接近我需要的正则表达式,但是不能完全匹配我需要的 - [^{]({{.*}})(!?})

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您可以将此正则表达式用于负面的外观断言:

(?<!{){{[^{}]+}}(?!})

RegEx Demo

    如果下一个字符为(?!}) ,则
  • }是一个否定前瞻断言,但未通过匹配
  • (?<!{)是一个负面的后视断言,如果前一个字符为{
  • ,则会导致匹配失败