java正则表达式中的 ? 是惰性匹配,具体的看下面的例子:
将输出空,因为没有加问号,此时进行的是最长匹配(贪婪匹配)
可以做如果更改
将输出:主页</a
如果把程序修改为:
将输出:主页
Pattern pattern = Pattern.compile("<.*>");
Matcher matcher =pattern.matcher("<a href=\"index.html\">主页</a>");
System.out.println(matcher.replaceAll(""));
将输出空,因为没有加问号,此时进行的是最长匹配(贪婪匹配)
可以做如果更改
Pattern pattern = Pattern.compile("<.*>");
Matcher matcher =pattern.matcher("<a href=\"index.html\">主页[color=red]</a[/color]");
System.out.println(matcher.replaceAll(""));
将输出:主页</a
如果把程序修改为:
Pattern pattern = Pattern.compile("<.*?>");
Matcher matcher =pattern.matcher("<a href=\"index.html\">主页</a>");
System.out.println(matcher.replaceAll(""));
将输出:主页