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   }

你可能感兴趣的:(java正则表达式)