场景一 使用Patter和Matcher(全匹配)
- 设计patter
String pattern=“[0-9]{6,9}”; - 使用Patter编译
Pattern p=Pattern.compile(pattern); - 使用返回的p去match
Matcher m=p.matcher(ret.replaceAll(" “,”")); - 从m中获取结果,这里使用m.matches()判断是否匹配
String pattern="[0-9]{6,9}";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(ret.replaceAll(" ",""));
String target="";
if(m.matches()){
target = "xxxx="+ret.replaceAll(" ","");
}else{
target = ret.replaceAll(" ","");
}
场景二 只使用Patter(全匹配)
String content = "sdfsdf234234dgdfgdffg";
String pattern = "[0-9]{1,}";
boolean isMatch = Pattern.matches(pattern, content);
总结
- Pattern.matches(regex, input);等价与Pattern.compile(regex).matcher(input).matches(),结果都是返回的是全匹配
- 全匹配 使用1的方式,直接反馈的bool值,是否全匹配
- 部分匹配 使用m.find,匹配字符串中的子字符串,可以使用如下m.find获取
String pattern="[0-9]{1,9}";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher("d114dfgdfg56");
System.out.println(Pattern.matches(pattern,"dx33"));
System.out.println(m.matches());
while (m.find()){
System.out.println(m.group());
}