正则表达式在双花括号之间得到任何东西

rab*_*ana 3 .net regex

我需要在 .NET 中获取双花括号之间的文本。我懂了:

\{{([^}]+)\}}
Run Code Online (Sandbox Code Playgroud)

但是,它还包括双花括号。有没有办法排除它们?

Kri*_*tel 5

我不是正则表达式的大师,但这应该可以工作并回答您关于在前后专门选择元素的问题。尝试:

(?<=\{\{).*(?=\}\})
Run Code Online (Sandbox Code Playgroud)

如果你想解释一下为什么会这样,我会引导你完成它:
(?<=\{\{)是积极回顾的开始*,它在您要查找的内容之后匹配一个组,而不将其包含在结果中。这基本上是您要求的第一部分。这些\{\{)是您实际要查找的转义字符。

.*是说你想选择任何次数,直到你到达(?=\}\})一个积极的前瞻组,本质上是你正在寻找的第二部分。这将选择该选择器后面的所有内容,即两个转义的大括号,而不选择大括号本身。

*笔记!正lookbehinds都不会在JavaScript的支持。