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  
相關文章
相關標籤/搜索