Pattern
pattern作用就是將一個(gè)String類型的正則表達(dá)式,轉(zhuǎn)為一個(gè)Pattern對(duì)象
- 創(chuàng)建,該類沒(méi)有公共構(gòu)造函數(shù),使用:
Pattern.compile(reg); reg代表傳入的正則表達(dá)式 - 分割字符串方法 split()
String reg=",";
String source="a,b,v,d";
Pattern pattern=Pattern.compile(reg);
String[] results=pattern.split(source);// a b c d
- 獲取傳入的正則表達(dá)式 pattern()
String reg=",";
String source="a,b,v,d";
Pattern pattern=Pattern.compile(reg);
String regular=pattern.pattern(); // ,
- 獲取Matcher對(duì)象
Matcher matcher=pattern.matcher(source); //其中source是我們需要匹配的源字符串
Matcher
1.創(chuàng)建Matcher,該類沒(méi)有公共構(gòu)造函數(shù),使用:
pattern.matcher(source);
- 3種匹配方法,分別是matches() lookingAt() find(),它們的返回值為布爾值,代表是否匹配到了:
- matches() 該方法表示源字符串必須全部符合 正則表達(dá)式
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()該方法是匹配源字符串開(kāi)始位置是否 符合 正則表達(dá)式:
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()該方法表示匹配源字符串 符合正則表達(dá)式的所有結(jié)果:
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();//匹配到結(jié)果在源字符串的起始索引
int end=matcher.end();//匹配到結(jié)果在源字符串的結(jié)束索引
String group=matcher.group();//匹配到結(jié)果字符串
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
}