Pattern
pattern作用就是将一个String类型的正则表达式,转为一个Pattern对象
- 创建,该类没有公共构造函数,使用:
Pattern.compile(reg); reg代表传入的正则表达式 - 分割字符串方法 split()
String reg=",";
String source="a,b,v,d";
Pattern pattern=Pattern.compile(reg);
String[] results=pattern.split(source);// a b c d
- 获取传入的正则表达式 pattern()
String reg=",";
String source="a,b,v,d";
Pattern pattern=Pattern.compile(reg);
String regular=pattern.pattern(); // ,
- 获取Matcher对象
Matcher matcher=pattern.matcher(source); //其中source是我们需要匹配的源字符串
Matcher
1.创建Matcher,该类没有公共构造函数,使用:
pattern.matcher(source);
- 3种匹配方法,分别是matches() lookingAt() find(),它们的返回值为布尔值,代表是否匹配到了:
- matches() 该方法表示源字符串必须全部符合 正则表达式
String reg="(\\w,)+";
String source1="a,b,v,d,";
String source2="a,b,v,d";
Pattern pattern=Pattern.compile(reg);
Matcher matcher1=pattern.matcher(source1);
boolean result1=matcher1.matches(); //true
Matcher matcher2=pattern.matcher(source2);
boolean result2=matcher2.matches(); //false
- lookingAt()该方法是匹配源字符串开始位置是否 符合 正则表达式:
String reg1="a,";
String reg2="b,";
String source="a,b,v,d,";
Pattern pattern1=Pattern.compile(reg1);
Pattern pattern2=Pattern.compile(reg2);
Matcher matcher1=pattern1.matcher(source);
boolean result1=matcher1.matches(); //true
Matcher matcher2=pattern2.matcher(source2);
boolean result2=matcher2.matches(); //false
- find()该方法表示匹配源字符串 符合正则表达式的所有结果:
String reg="a,";
String source="a,b,v,a,d,a,";
Pattern pattern=Pattern.compile(reg);
Matcher matcher=pattern.matcher(source);
while(matcher.find()){
int start=matcher.start();//匹配到结果在源字符串的起始索引
int end=matcher.end();//匹配到结果在源字符串的结束索引
String group=matcher.group();//匹配到结果字符串
Log.e("match","group:"+group+"\tstart="+start+"\tend="+end);
//group:a, start=0 end=2
//group:a, start=6 end=8
//group:a, start=10 end=12
}