Pattern類:
Pattern的創建:
Pattern pattern =Pattern.complie(String regex)
參數說明:regex:是一個正則表達式的字符串,(也是需要過濾或尋找字符串的正則表達式)
pattern():
String regex=pattern.pattern();
方法說明:返回pattern實例對應的正則表達式(創建的時候傳入的參數:regex);
split():
String[] stringArray=pattern.split(CharSequence input);
方法說明:將input字符串根據pattern的規則拆分成數組;
input --將被拆分的字符串;
stringArray-拆分后得到的數組;
pattern--拆分規則:在input字符串中遇到與pattern匹配的字符串就會將input進行拆分;
示例:input-"1e1e1e1e2e5d2"
Pattern pattern =Pattern.complie("\d")
結果 stringArray為[e,e,e,e,e,d]
Matcher類:
在創建Matcher的時候,需要先創建Pattern;
Pattern pattern =Pattern.complie(String regex)
Matcher matcher=pattern.matcher( String imput);
pattern():
Pattern pattern=matcher.pattern();
方法說明:返回創建mathcer的pattern實例;
整體匹配:
Boolean boolean=matcher.matcher();
參數說明: boolean-只有整個matcher中的input字符串與pattern的匹配規則完全匹配的時候返回true,否則返回false;
局部匹配:
Boolean boolean=matcher.find();
參數說明: boolean-當matcher中的input字符串具有與pattern的規則匹配的時候返回true,否則返回false;
當boolean為true的時候,我們可以調用
matcher.start();返回匹配到的子字符串在字符串中的索引位置
matcher.end();返回匹配到的子字符串的最后一個字符在字符串中的索引位置
matcher.group();返回匹配到的子字符串
注意:當多次調用find()的時候,會在字符串中尋找下一個能夠匹配這則表達式的子字符串;
替換:
String over=matcher.replaceFirst(String instead);
參數說明:instead:將匹配到的第一處的字符串換成instead字符串
over:替換后的字符串;
String over=matcher.replaceAll(String instead);
參數說明:instead:將匹配到所有的字符串換成instead字符串
over:替換后的字符串;
String StringBuffer=matcher.appendReplacement();
將替換位置處及之前位置處的字符復制到StringBuffer中;
String StringBuffer=matcher.appendTail();
將替換位置之后的字符復制到StringBuffer
使用實例:
//匹配字符串,正則長度等於14位
Pattern p = Pattern.compile("^.{14}$");
Matcher m = p.matcher(location_codeText);
if(m.find()) {
isFull.setEnabled(true);
isFull.setTextColor(Color.BLUE);
}else{
isFull.setEnabled(false);
isFull.setTextColor(Color.GRAY);
return;
}
//*處理字符串中的特殊字符*/
String regEx="[`~!@#$%^&*()+=|{}':;'\\[\\].<>/?~!@#¥%……&*()——+|{}【】';:”“’。、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(strToSpeech.toString());
String toSpeechText=m.replaceAll("").trim();