繁体   English   中英

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

[英]How can i extract last shortest string using regex in java

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

字符串:

  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

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

您可以使用负向前瞻以避免匹配匹配中的另一个-d/-n

-[dn] (?!.*?-[dn]).*$

RegEx演示

可能会贪婪 .*吃饭之前:

^.*(-[dn] .*)$

并抓住第一个捕获组的匹配。 请参阅regex101上的测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM