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   }
原文地址:https://www.cnblogs.com/loritin/p/2723238.html