zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    Java实现Labeling Balls(拓扑排序的应用)
    Java实现Labeling Balls(拓扑排序的应用)
    Java实现Labeling Balls(拓扑排序的应用)
    Java实现Labeling Balls(拓扑排序的应用)
    string与QString转换(string既可以是utf8,也可以是gbk)
    Qt4.8.6详细安装步骤(使用了i686-4.8.2-release-posix-dwarf-rt_v3-rev3,手动设置gcc和gdb)非常清楚 good
    qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
    小试X64 inline HOOK,hook explorer.exe--->CreateProcessInternalW监视进程创建
    RtlAdjustPrivilege进程提权,权限ID对照表
    jQuery AJAX 网页无刷新上传示例
  • 原文地址:https://www.cnblogs.com/xmyjcs/p/10422802.html
Copyright © 2011-2022 走看看