正则表达式中最短和最新的匹配

时间:2016-03-10 12:52:18

标签: java regex

我有一个正则表达式:

\{\{([\S\s]+?)\.$

和文字:

{{system 1}} asdfd{{system2.

我需要解析最短的匹配,比如“system2”

2 个答案:

答案 0 :(得分:4)

你可以使用这种基于正则表达式的负前瞻:

\{\{(?!.*\{\{)([\S\s]+)\.

否定前瞻(?!.*\{\{)可确保我们匹配输入中的最后{{

RegEx Demo

答案 1 :(得分:0)

您只需使用

即可
(?<=\{\{)([\S\s]+?)(?=\.$)

参见演示。

https://regex101.com/r/rH3nV0/2