用于查找{{}}

时间:2019-06-11 16:23:14

标签: c# regex

我有一个在其中插入变量的字符串。它们被双大括号包围,即{{VARIABLE}}

什么正则表达式可以用来在双花括号内返回变量名?

2 个答案:

答案 0 :(得分:2)

您可以使用lookahead and lookbehind断言来匹配某些模式之后和之前的文本。您还可以使用negative character class来匹配非}的字符,以使匹配的字符串不太适合greedy

(?<=\{\{)[^}]+(?=\}\})

您可以在操作here中看到这种模式

答案 1 :(得分:1)

您还可以使用捕获组:

Duration d = Duration.ofSeconds( 5 ) ;
Instant later = Instant.now().plus( d ) ;  // Soft-code the amount of time to add or subtract.

Regex demo

如果在占位符之前或之后没有任何内容,并且占位符本身可以包含{或},则可以使用:

\{\{(.+?)}}

说明

  • (?<!\S)\{\{(.+?)}}(?!\S) 声明左侧的内容不是非空白字符
  • (?<!\S)匹配{{
  • \{\{在组1中捕获,匹配任何1次以上非char字符的字符
  • (.+?)字面上匹配
  • }}断言右边的内容不是非空格字符

Regex demo