zoukankan      html  css  js  c++  java
  • java String matches 正则表达

      

    1. package test;  
    2. /**  
    3.  * 在String的matches()方法,split()方法中使用正则表达式.  
    4.  * @author fhd001  
    5.  */  
    6. public class RegexTest {  
    7.   
    8.     public static void main(String[] args) {  
    9.   
    10.         /*  
    11.          * 普通字符  
    12.          */  
    13.         String str1 = "abc45abc345";  
    14.         String[]arr1 = str1.split("abc");  
    15.         for (String string : arr1) {  
    16.             System.out.print(string+"-->");  
    17.         }  
    18.         System.out.println();  
    19.           
    20.           
    21.         /*  
    22.          * 简单的转义字符  
    23.          * 在java中转义字符时一定要用双反斜线,两个斜线转义成一个斜线,  
    24.          * 在用这个斜线字符转义那些特殊字符.  
    25.          */  
    26.         String str2 = "^$()[]{}.?+*|";  
    27.         boolean flag = str2.matches("//^//$//(//)//[//]//{//}//.//?//+//*//|");  
    28.         System.out.println(flag);  
    29.           
    30.           
    31.         /*  
    32.          * 转义字符 /Q.../E.  
    33.          */  
    34.         String str3 = "^$()[]{}.?+*|99999";  
    35.         boolean flag2 = str3.matches("//Q^$()[]{}.?+*|//E//d{5}");  
    36.         System.out.println(flag2);  
    37.           
    38.           
    39.         /*  
    40.          * 字符集合  
    41.          */  
    42.         String str4 = "dfddri334";  
    43.         boolean flag4 = str4.matches(".+");  
    44.         System.out.println(flag4);  
    45.           
    46.         String str5 = "#$%^*())%";  
    47.         boolean flag5 = str5.matches("//W{9}");  
    48.         System.out.println(flag5);  
    49.           
    50.         String str6 = "4gffmdkekrhhr";  
    51.         boolean flag6 = str6.matches("//w+");  
    52.         System.out.println(flag6);  
    53.           
    54.         String str7 = "fjfdke    eett ";  
    55.         boolean flag7 = str7.matches("//w+//s+//w{4}//s?");  
    56.         System.out.println(flag7);  
    57.           
    58.         String str8 = "   erefff    ";  
    59.         boolean flag8 = str8.matches("//s+//S+//s+");  
    60.         System.out.println(flag8);  
    61.           
    62.         String str9 = "456776888";  
    63.         boolean flag9 = str9.matches("//d+");  
    64.         System.out.println(flag9);  
    65.           
    66.           
    67.         String str10 = "rtydfgrgwvr  ";  
    68.         boolean flag10 = str10.matches("//D+");  
    69.         System.out.println(flag10);  
    70.           
    71.           
    72.         /*  
    73.          * 自定义字符集合 [ ]  
    74.          */  
    75.         String str11 = "fdfeetg  34566";  
    76.         boolean flag11 = str11.matches("[fdetg]+//s+[3-6]+");  
    77.         System.out.println(flag11);  
    78.           
    79.           
    80.         String str12 = "rtyuie   5768";  
    81.         boolean flag12 = str12.matches("[^abcdf]+//s+[^1234]+");  
    82.         System.out.println(flag12);  
    83.           
    84.           
    85.         /*  
    86.          * 匹配次数限定符  
    87.          */  
    88.           
    89.         //贪婪模式  
    90.         String str13 = "ytreggcv454444444333";  
    91.         boolean flag13 = str13.matches("//w{20}");  
    92.         System.out.println(flag13);  
    93.           
    94.         boolean flag14 = str13.matches("//w{10,21}");  
    95.         System.out.println(flag14);  
    96.           
    97.         boolean flag15 = str13.matches("//w{18,}");  
    98.         System.out.println(flag15);  
    99.           
    100.         String str14 = "4";  
    101.         boolean flag16 = str14.matches("//d?");  
    102.         System.out.println(flag16);  
    103.           
    104.         String str15 = "ddcvgt";  
    105.         boolean flag17 = str15.matches("//D+//d?");  
    106.         System.out.println(flag17);  
    107.           
    108.         String str16 = "e33tf44t44t";  
    109.         boolean flag18 = str16.matches("//w+//W*");  
    110.         System.out.println(flag18);  
    111.           
    112.         //勉强模式(只举一例)  
    113.         String str17 = "34567ghjkkld";  
    114.         boolean flag19 = str17.matches("//d{2,7}?//w{8,11}");  
    115.         System.out.println(flag19);  
    116.           
    117.         //占有模式(只举一例)  
    118.         String str18 = "22222ddddd";  
    119.         boolean flag20 = str18.matches("//d{2,5}+//w{6}");  
    120.         System.out.println(flag20);  
    121.           
    122.         /*  
    123.          * 字符边界  
    124.          */  
    125.         String str19 = "a444545rot44tm";  
    126.         boolean flag21 = str19.matches("^a//w+m$");  
    127.         System.out.println(flag21);  
    128.           
    129.           
    130.         /*  
    131.          * 选择表达式 xxx | xxx  
    132.          */  
    133.         String str20 = "abc123abc";  
    134.         boolean flag22 = str20.matches("(abc|123){3}");  
    135.         System.out.println(flag22);  
    136.           
    137.           
    138.         /*  
    139.          * 分组 ( ).  
    140.          * 以上修饰符都是针对一个字符进行修饰.如果要对一组字符进行  
    141.          * 修饰就要用到()  
    142.          */  
    143.         String str21 = "123qwe123qwe";  
    144.         boolean flag23 = str21.matches("(123qwe){2}");  
    145.         System.out.println(flag23);  
    146.           
    147.           
    148.         /*  
    149.          * []中的交集与并集  
    150.          */  
    151.         String str22 = "abcdefgh1234567";  
    152.         boolean flag24 = str22.matches("[a-z1-9]+");        //并集  
    153.         System.out.println(flag24);  
    154.           
    155.         boolean flag25 = str22.matches("[a-z1-9&&[a-h1-7]]+"); //交集  
    156.         System.out.println(flag25);  
    157.     }  
    158. }  
    结果代码 
    1. -->45-->345-->  
    2. true  
    3. true  
    4. true  
    5. true  
    6. true  
    7. true  
    8. true  
    9. true  
    10. true  
    11. true  
    12. true  
    13. true  
    14. true  
    15. true  
    16. true  
    17. true  
    18. true  
    19. true  
    20. false  
    21. true  
    22. true  
    23. true  
    24. true  
    25. true  
  • 相关阅读:
    TopK问题:什么是TopK问题?用堆和快排这两种方式来实现TopK
    volatile是什么?volatile能保证线程安全性吗?如何正确使用volatile?
    并行的执行效率一定高于串行吗?(多线程的执行效率一定高于单线程吗?)
    位运算和取模运算的运算效率对比
    jdk1.8源码解析:HashMap底层数据结构之链表转红黑树的具体时机
    jdk1.8 HashMap底层数据结构:散列表+链表+红黑树(图解+源码)
    根据jdk1.8源码整理而得,java集合体系(继承、实现关系)图解,超清晰,一看就懂,方便记忆
    java代码实现简易版IOC容器,含IOC容器实现步骤分解
    自己实现SpringAOP,含AOP实现的步骤分解
    自己实现简易版AOP,含AOP实现的步骤分解
  • 原文地址:https://www.cnblogs.com/ouyangping/p/6842108.html
Copyright © 2011-2022 走看看