import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class xt{
public static void main(String args []) {
String er="^aa";
String s="aabbcc";
Pattern pat=Pattern.compile(er);
Matcher mat=pat.matcher(s);
boolean bo=mat.matches();
System.out.println(bo);
System.out.println(s.matches(er));
}
}
import java.util.regex.Pattern;
public class xt{
public static void main(String args []) {
String er="^aa";
String s="aabbcc";
Pattern pat=Pattern.compile(er);
Matcher mat=pat.matcher(s);
boolean bo=mat.matches();
System.out.println(bo);
System.out.println(s.matches(er));
}
}
boolean result=Pattern.matches(er, s);
public static void main(String args []) {
Pattern p = Pattern.compile("^aa");
Matcher m = p.matcher("aabbcc");
while (m.find()) {
System.out.println(m.group());
}
}
}
第一种写法错在哪里?
find是包含关系
match要求你的字符串s完全满足正则表达式er
find是要求你的字符串s中包含满足正则表达式er的子字符串
这样清楚么?
find的是subsequence即子序列
看下 API 可以看到 该方法 说明"尝试将整个区域与模式匹配。"
现在 看 正则"^aa" 与source "aabbcc"
只能匹配aa,当然 不能全部匹配咯,所以返回 false,
而 find 方法 说明"尝试查找与该模式匹配的输入序列的下一个子序列"
白话来讲就是:"找找 这个String有没有符合的,如果有,就返回true"