如何在java中使用正则表达式提取最后一个最短的字符串

kim*_*.kr 3 java regex shortest

我怎样才能在下面提取粗体字符串

字符串:

  1. 你好世界blah -d blah vlaah -n blah vlahh
  2. 你好世界blah -n blah vlahh -d blah vlaah
  3. 你好世界blah -d blaaah

我试过了.-[dn] .*$但它找到了最长的匹配字符串,如下所示

  1. 你好世界blah -d blah vlaah -n blah vlahh

我想提取最短的匹配字符串.提前致谢

anu*_*ava 5

您可以使用否定前瞻来避免匹配匹配中的另一个-d/-n:

-[dn] (?!.*?-[dn]).*$
Run Code Online (Sandbox Code Playgroud)

RegEx演示