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

  • 相关阅读:
    用自己的语言描述一下程序连接数据库的过程?
    什么是AJAX?
    怎样计算页面执行的时间?
    缓存的几种不同的实现方法?
    <%@Page%>中的Codebehind AytoEventWireup.inherits有何作用?
    上网搜关于缓存的内容,谈谈你对缓存的理解看法。并回答在网站开发中使用缓存有哪些好处?
    在access中如何创建数据库?你认为数据库在网站开发中所扮演的角色是什么?使用数据库和使用文件,两者的优缺点是是什么?
    什么是Cookie对象,Session对象,application对象?
    docker 部署gin項目
    golang windows endless 运行报错 undefined: syscall.SIGUSR1
  • 原文地址:https://www.cnblogs.com/xmyjcs/p/10422802.html
Copyright © 2011-2022 走看看