Android 正則表達式,Pattern,Matcher基本使用


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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM