Matcher Java如何实现非贪婪匹配

   2024-10-06 2630
核心提示:在Java中,可以通过在正则表达式中使用?来实现非贪婪匹配。在正则表达式中,?可以与*、+、?和{}等限定符一起使用,使其变为非贪

在Java中,可以通过在正则表达式中使用?来实现非贪婪匹配。在正则表达式中,?可以与*、+、?和{}等限定符一起使用,使其变为非贪婪匹配。

例如,假设我们有一个字符串input,想要匹配最短的以a开头、以b结尾的子字符串。我们可以使用.*?来实现非贪婪匹配,即用.*?ab来匹配最短的子字符串。

import java.util.regex.*;public class Main {    public static void main(String[] args) {        String input = "aabab";        Pattern pattern = Pattern.compile(".*?ab");        Matcher matcher = pattern.matcher(input);        if (matcher.find()) {            System.out.println("Non-greedy match: " + matcher.group());        }    }}

在上面的示例中,使用.*?ab进行非贪婪匹配,最终匹配到的是aab,而不是整个字符串aabab。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号