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