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

java中正则表达式运用实例(参看java中正则表达式运用详解):

测试代码 
  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  

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java正则表达式是一种强大的工具,用于匹配和操作字符串Java提供了java.util.regex包来支持正则表达式的使用。 正则表达式由一系列字符组成,用于描述字符串的模式。在Java,可以使用正则表达式进行以下操作: 1. 匹配:使用`matches()`方法可以判断一个字符串是否与指定的正则表达式匹配。例如,`str.matches("abc")`可以判断字符串`str`是否与模式"abc"匹配。 2. 查找:使用`Pattern`和`Matcher`可以在字符串查找与正则表达式匹配的子串。首先,使用`Pattern.compile()`方法编译正则表达式,然后使用`Matcher`的`find()`方法进行查找。例如: ```java String regex = "a*b"; String input = "aabfooaabfooabfoob"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.println("Found: " + matcher.group()); } ``` 上述代码将输出所有与正则表达式"a*b"匹配的子串。 3. 替换:使用`replaceAll()`方法可以将字符串正则表达式匹配的部分替换为指定的字符串。例如,`str.replaceAll("a+", "b")`将字符串`str`的所有连续的字母"a"替换为"b"。 4. 分割:使用`split()`方法可以根据正则表达式字符串分割为多个子串。例如,`str.split("\\s+")`将字符串`str`按照一个或多个空格进行分割。 5. 其他操作:Java正则表达式还支持字符、边界匹配、量词、分组等高级特性,可以实现更复杂的匹配和操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值