java中正则表达式运用实例(用String类的matches方法演示)

测试代码 

    package test;  
    /**  
     * 在String的matches()方法,split()方法中使用正则表达式.  
     * @author fhd001  
     */  
    public class RegexTest {  
      
        public static void main(String[] args) {  
      
            /*  
             * 普通字符  
             */  
            String str1 = "abc45abc345";  
            String[]arr1 = str1.split("abc");  
            for (String string : arr1) {  
                System.out.print(string+"-->");  
            }  
            System.out.println();  
              
              
            /*  
             * 简单的转义字符  
             * 在java中转义字符时一定要用双反斜线,两个斜线转义成一个斜线,  
             * 在用这个斜线字符转义那些特殊字符.  
             */  
            String str2 = "^$()[]{}.?+*|";  
            boolean flag = str2.matches("//^//$//(//)//[//]//{//}//.//?//+//*//|");  
            System.out.println(flag);  
              
              
            /*  
             * 转义字符 /Q.../E.  
             */  
            String str3 = "^$()[]{}.?+*|99999";  
            boolean flag2 = str3.matches("//Q^$()[]{}.?+*|//E//d{5}");  
            System.out.println(flag2);  
              
              
            /*  
             * 字符集合  
             */  
            String str4 = "dfddri334";  
            boolean flag4 = str4.matches(".+");  
            System.out.println(flag4);  
              
            String str5 = "#$%^*())%";  
            boolean flag5 = str5.matches("//W{9}");  
            System.out.println(flag5);  
              
            String str6 = "4gffmdkekrhhr";  
            boolean flag6 = str6.matches("//w+");  
            System.out.println(flag6);  
              
            String str7 = "fjfdke    eett ";  
            boolean flag7 = str7.matches("//w+//s+//w{4}//s?");  
            System.out.println(flag7);  
              
            String str8 = "   erefff    ";  
            boolean flag8 = str8.matches("//s+//S+//s+");  
            System.out.println(flag8);  
              
            String str9 = "456776888";  
            boolean flag9 = str9.matches("//d+");  
            System.out.println(flag9);  
              
              
            String str10 = "rtydfgrgwvr  ";  
            boolean flag10 = str10.matches("//D+");  
            System.out.println(flag10);  
              
              
            /*  
             * 自定义字符集合 [ ]  
             */  
            String str11 = "fdfeetg  34566";  
            boolean flag11 = str11.matches("[fdetg]+//s+[3-6]+");  
            System.out.println(flag11);  
              
              
            String str12 = "rtyuie   5768";  
            boolean flag12 = str12.matches("[^abcdf]+//s+[^1234]+");  
            System.out.println(flag12);  
              
              
            /*  
             * 匹配次数限定符  
             */  
              
            //贪婪模式  
            String str13 = "ytreggcv454444444333";  
            boolean flag13 = str13.matches("//w{20}");  
            System.out.println(flag13);  
              
            boolean flag14 = str13.matches("//w{10,21}");  
            System.out.println(flag14);  
              
            boolean flag15 = str13.matches("//w{18,}");  
            System.out.println(flag15);  
              
            String str14 = "4";  
            boolean flag16 = str14.matches("//d?");  
            System.out.println(flag16);  
              
            String str15 = "ddcvgt";  
            boolean flag17 = str15.matches("//D+//d?");  
            System.out.println(flag17);  
              
            String str16 = "e33tf44t44t";  
            boolean flag18 = str16.matches("//w+//W*");  
            System.out.println(flag18);  
              
            //勉强模式(只举一例)  
            String str17 = "34567ghjkkld";  
            boolean flag19 = str17.matches("//d{2,7}?//w{8,11}");  
            System.out.println(flag19);  
              
            //占有模式(只举一例)  
            String str18 = "22222ddddd";  
            boolean flag20 = str18.matches("//d{2,5}+//w{6}");  
            System.out.println(flag20);  
              
            /*  
             * 字符边界  
             */  
            String str19 = "a444545rot44tm";  
            boolean flag21 = str19.matches("^a//w+m$");  
            System.out.println(flag21);  
              
              
            /*  
             * 选择表达式 xxx | xxx  
             */  
            String str20 = "abc123abc";  
            boolean flag22 = str20.matches("(abc|123){3}");  
            System.out.println(flag22);  
              
              
            /*  
             * 分组 ( ).  
             * 以上修饰符都是针对一个字符进行修饰.如果要对一组字符进行  
             * 修饰就要用到()  
             */  
            String str21 = "123qwe123qwe";  
            boolean flag23 = str21.matches("(123qwe){2}");  
            System.out.println(flag23);  
              
              
            /*  
             * []中的交集与并集  
             */  
            String str22 = "abcdefgh1234567";  
            boolean flag24 = str22.matches("[a-z1-9]+");        //并集  
            System.out.println(flag24);  
              
            boolean flag25 = str22.matches("[a-z1-9&&[a-h1-7]]+"); //交集  
            System.out.println(flag25);  
        }  
    }  
结果代码 

    -->45-->345-->  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    true  
    false  
    true  
    true  
    true  
    true  
    true  



FROM:

http://blog.csdn.net/vrix/article/details/5713420

http://www.cnblogs.com/elleniou/archive/2012/07/31/2617312.html


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值