java正则表达式问题
下面是我的代码:publicvoidtestReg(){Patternp=Pattern.compile("^[0-5]*$");Matchermach=p.matche...
下面是我的代码:
public void testReg(){
Pattern p = Pattern.compile("^[0-5]*$");
Matcher mach = p.matcher("2131232131");
if(mach.matches()){
System.out.println(mach.group());
}else{
System.out.println("none matched");
}
System.out.println("*************************");
if(mach.find()){
System.out.println(mach.group());
}else{
System.out.println("none find");
}
}
为什么输出是这样的呢
2131232131
*************************
none find
我觉得应该都是输出2131232131,为什么下面的是没有find呢 展开
public void testReg(){
Pattern p = Pattern.compile("^[0-5]*$");
Matcher mach = p.matcher("2131232131");
if(mach.matches()){
System.out.println(mach.group());
}else{
System.out.println("none matched");
}
System.out.println("*************************");
if(mach.find()){
System.out.println(mach.group());
}else{
System.out.println("none find");
}
}
为什么输出是这样的呢
2131232131
*************************
none find
我觉得应该都是输出2131232131,为什么下面的是没有find呢 展开
2个回答
展开全部
matcher0对象在调用matches()后修改了这个对象的某个全局变量.
在match()方法中有this.oldLast = this.last;等代码, 而find()中则没有.
这个就是match()和find()方法的区别
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* mathch()和find()方法的区别
* @author Administrator
*
*/
public class TestReg{
public static void main(String[] args) {
Pattern p = Pattern.compile("^[0-5]*$");
Matcher mach = p.matcher("2131232131");
if(mach.find()){
System.out.println("fin(): " + mach.group());
}else{
System.out.println("none find");
}
System.out.println("*************************");
if(mach.matches()){
System.out.println("match(): " + mach.group());
}else{
System.out.println("none matched");
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询