正则表达式

本文详细介绍Java中正则表达式的应用,包括匹配、分割及替换等操作,并提供具体示例,如手机号验证、字符串分割及叠词替换等。

////匹配

   使用的是String中的matches()方法

//////分割

   使用的是String中的split()方法

///替换

   使用的是String中的replaceAll()方法

[java]  view plain copy print ?
  1. package com.xuan.demo;  
  2.   
  3. import java.util.regex.Matcher;  
  4. import java.util.regex.Pattern;  
  5.   
  6. public class RegexDemo {  
  7.       
  8.     public static void main(String[] args){  
  9.         System.out.println("正则表达式");      
  10.         ///匹配  
  11.         RegexFunction2();  
  12.           
  13.         ///分割  
  14.         sqplitDemo();  
  15.           
  16.         ///替换  
  17.         replaceAllDemo();  
  18.           
  19.         //获取  
  20.         PatternDemo();  
  21.           
  22.     }  
  23.   
  24.     public static void PatternDemo() {  
  25.         String str="ni lov ming,xixi,haha I Love You, fan xiaoxiao,jia dashu";  
  26.           
  27.         //String regex="[a-z]{3}";///这写法获取有问题,没有指定边界  
  28.         String regex="\\b[a-z]{3}\\b";//有指定边界  
  29.         //将正则封装成对象  
  30.         Pattern p=Pattern.compile(regex);  
  31.         //通过正则获取匹配对象  
  32.         Matcher m=p.matcher(str);  
  33.           
  34.         //m.find();///查找,找到返回true  
  35.         while(m.find()){  
  36.             System.out.println("-----:"+m.group());  
  37.         }  
  38.     }  
  39.       
  40.     ///替换  
  41.     public static void replaceAllDemo() {  
  42.         String str="xixitttttthahaniniwwwwwwwwwhehe";  
  43.           
  44.         ///将叠词替换成#号  
  45.         //str=str.replaceAll("(.)\\1+", "#");//把连续重复的替换成#号  
  46.         str=str.replaceAll("(.)\\1+""$1");//把连续重复的替换成一个:==>xixithahaniniwhehe  
  47.         System.out.println("======>"+str);  
  48.           
  49.         String tel ="15800001111";  
  50.         ///(\\d{3})封装成组$1,(\\d{4})封装成组$2  
  51.         tel=tel.replaceAll("(\\d{3})\\d{5}(\\d{3})""$1****$2");  
  52.         System.out.println("=====>"+tel);///===>158****111  
  53.     }  
  54.       
  55.     ///分割  
  56.     public static void sqplitDemo() {  
  57.         String str="xiaoming wangcai xiaoqiang xiaoli";  
  58.         String[] names=str.split("\\ ");  
  59.           
  60.         /*String str="xiaoming.wangcai.xiaoqiang"; 
  61.         String[] names=str.split("\\.");*/  
  62.           
  63.         for(String name : names){  
  64.             System.out.println("----->"+name);  
  65.         }  
  66.     }  
  67.      
  68.     ///匹配  
  69.     public static void RegexFunction2() {  
  70.         ///手机校验  
  71.         String tel="15800001111";  
  72.           
  73.         ///第一位只能为1,第二位:只能是3,5,8,;后面9位数只能是数字,不能出现字母  
  74.         //String regex="1[358][0-9]{9}";  
  75.         String regex="1[358]\\d{9}";//简写  
  76.         boolean b=tel.matches(regex);  
  77.         System.out.println(tel+"==>"+b);  
  78.     }  
  79.   
  80. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值