• java正则表达式(三)


    三、括号、或匹配

    在正则表达式中,由于[]号只能做单个元素的匹配,这样会限制正则表达式的作用,如何做到多个元素的匹配呢?用()实现。

    ()可以进行多个元素的匹配,例如:t(a|e|i|o|oo)n,|在正则表达式中代表“或”的意思,即匹配的字符串只要满足()

    中任意一项元素的匹配,该正则表达式则返回true,见代码示例:

     1 public class RegExp {
     2     private Pattern patt;
     3     private Matcher matcher;
     4   /**
     5      * 括号、或匹配:想要匹配“toon”,可以使用“|”操作符。“|”操作符的基本意义就是“或”运算。
     6      * 要匹配“toon”,使用“t(a|e|i|o|oo)n”正则表达式。
     7      * 不能使用方扩号,因为方括号只允许匹配单个字符;必须使用圆括号“()”。
     8      * @param regStr
     9      * @param regex
    10      * @return
    11      */
    12     public boolean bracketReg(String regStr,String regex){
    13         return this.commonRegExp(regStr, regex);
    14     }
    15   private boolean commonRegExp(String regStr,String regex){
    16         boolean wildcard_Res=false;
    17         patt=Pattern.compile(regex);
    18         matcher=patt.matcher(regStr);
    19         wildcard_Res= matcher.find();
    20         return wildcard_Res;
    21     }
    22 }
    1 public class TestRegExp {
    2     public static void main(String[] args) {
    3         RegExp re=new RegExp();
    4         boolean wildcard_Res=false;
    5      //括号、或匹配
    6         wildcard_Res=re.bracketReg("toon", "t(aoe|oo)n");
    7         System.out.println(wildcard_Res);
    8         //输出:wildcard_Res=true
    9 }

    注:在用()进行匹配时,凡是在()中有多个元素连续紧挨着出现时,必须这几个元素在匹配的字符串中也连续紧挨着出现,且

    不能出现多余的元素,否则匹配不会成功。见代码示例:

     1  public class RegExp {
     2       private Pattern patt;
     3       private Matcher matcher;
     4     /**
     5        * 括号、或匹配:想要匹配“toon”,可以使用“|”操作符。“|”操作符的基本意义就是“或”运算。
     6        * 要匹配“toon”,使用“t(a|e|i|o|oo)n”正则表达式。
     7        * 不能使用方扩号,因为方括号只允许匹配单个字符;必须使用圆括号“()”。
     8        * @param regStr
     9        * @param regex
    10       * @return
    11    */
    12      public boolean bracketReg(String regStr,String regex){
    13          return this.commonRegExp(regStr, regex);
    14      }
    15     private boolean commonRegExp(String regStr,String regex){
    16          boolean wildcard_Res=false;
    17          patt=Pattern.compile(regex);
    18          matcher=patt.matcher(regStr);
    19          wildcard_Res= matcher.find();
    20          return wildcard_Res;
    21      }
    22  }
    23 
    24   public class TestRegExp {
    25       public static void main(String[] args) {
    26           RegExp re=new RegExp();
    27           boolean wildcard_Res=false;
    28       //括号、或匹配
    29           wildcard_Res=re.bracketReg("taoehn", "t(aoe|oo)n");
    30           System.out.println(wildcard_Res);
    31           //输出:wildcard_Res=false
    32   }
  • 相关阅读:
    Android实战:手把手实现“捧腹网”APP(一)-----捧腹网网页分析、数据获取
    容器云平台使用体验:数人云Crane(续)
    [React Native]升级React Native版本
    [React Native]去掉WebStorm中黄色警告
    数据库--mysql介绍
    缓存数据库-redis(补充)
    缓存数据库-redis(订阅发布)
    缓存数据库-redis(管道)
    缓存数据库-redis数据类型和操作(sorted set)
    缓存数据库-redis数据类型和操作(set)
  • 原文地址:https://www.cnblogs.com/loritin/p/2723238.html
Copyright © 2020-2023  润新知