关于java正则匹配没有匹配到最后一串,Pattern和Matcher方法
1个回答
展开全部
你的Java正则表达式没错(对于这个字符串),只是输出的for-i循环终止条件i<m.groupCount(); 少了一个等号,应该是i<=m.groupCount();这样匹配到的字符串"adfgex"就打印出来了.
完整的Java程序如下(改动的地方见注释)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AA {
public static void main(String[] args) {
String pattern="(.+)(,)(.+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher("123456,adfgex");
System.out.println(m.groupCount());
if(m.find()){
for(int i=0;i<=m.groupCount();i++){//这里 i<m.groupCount();改成i<=m.groupCount();
System.out.print(i+":"+m.group(i)+"\t");
}
}
}
}
运行结果
3
0:123456,adfgex 1:123456 2:, 3:adfgex
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询