我有一个在其中插入变量的字符串。它们被双大括号包围,即{{VARIABLE}}
。
什么正则表达式可以用来在双花括号内返回变量名?
答案 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.
如果在占位符之前或之后没有任何内容,并且占位符本身可以包含{或},则可以使用:
\{\{(.+?)}}
说明
(?<!\S)\{\{(.+?)}}(?!\S)
声明左侧的内容不是非空白字符(?<!\S)
匹配{{\{\{
在组1中捕获,匹配任何1次以上非char字符的字符(.+?)
字面上匹配}}
断言右边的内容不是非空格字符