我是Java初学者,遇到一个奇怪的问题,搜索也没明白为什么,请各位大侠不吝指点[code]
Pattern p = Pattern.compile("1");
Matcher m = p.matcher("3122");
System.out.println(m.matches());
[/code]输出:
false为啥呢?不应该匹配到 “3122”的第二个字符吗?谢谢
Pattern p = Pattern.compile("1");
Matcher m = p.matcher("3122");
System.out.println(m.matches());
[/code]输出:
false为啥呢?不应该匹配到 “3122”的第二个字符吗?谢谢
Matcher m = p.matcher("3122");
System.out.println(m.matches());
public static void main(String[] args){
String reg="^\\d1\\d+$";
String target="3122";
System.out.println(target.matches(reg));
}
}
貌似应该这样运用正则表达式吧。\\d是数字一位,然后是1,然后是\\d+ 一个或多个数字。返回 true。
Pattern p = Pattern.compile("1");
Matcher m = p.matcher("3122");
while(m.find()){
System.out.println(m.group());
}
你应该用find()方法,就可以匹配了
Matcher m = p.matcher("3122"); System.out.println(m.find());
这个就是你想要的了