java基础--正则表达式

正则表达式

实例一

/**
 * 正规表达式:用于操作与字符串数据
 * 优点:代码简化;
 * 缺点:可读性不强
 * @author Administrato
 *1.需求 QQ 校验
 *长度:5-15,不能有字母和以0开头
 *正则表达式的:字符串操作还主要集中于String,StringBuffer和StringTokenizer类
 *
 */
public class ZGbiaoDaShi {

	public static void main(String[] args) {
		String qq="57872de大566";//生成一个字符串对象
		String  str="[1-9][0-9]{6,14}";//生成正规表达式[1-9]:不以0开头
		boolean d=qq.matches(str);//调用了String类的public boolean matches(String regex)
		//regex - 用来匹配此字符串的正则表达式 ,返回boolean类型 字符串匹配给定的正则表达式时,返回 true 	
      System.out.println(qq+":"+d);	
	}

}

实例二

/**正规表达式的功能:
 * A:匹配
 * B切割
 * C替换
 *  String replaceAll(String regex, String replacement) 
          使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 
 * D获取
 * Reset()方法,可以将Matcher对象重新设置到当前字符序列的起始位置。
 * @author Administrator
 *
 */
public class ZGBDde功能 {
	public static void main(String[] args) {
		qiege();
		pipei();
		tihuan();
	}
	/**
	 * 匹配操作:
	 * 
	 */
    public static void  pipei(){
		String str="15993890618";
		String st="1[358][0-9]{9}";//[第一位是1],[二位是3,5,8,][三位是1-9],{位数是9}
		boolean d=str.matches(st);//判断整个输入字符串是否匹配正则表达式模式,
		//lookingAt()判断该字符串(不必是整个字符串)的始部分是否能够匹配模式。
		//start()返回先前匹配的起始位置的索引,
		//end()返回所匹配的最后字符的索引加一的值
		//find()可以在输入的任意位置定位正则表达式,
		/*lookingAt和matches()只有在正则表达式与输入的最开始出就开始匹配时才会成功。
		 *matches()只有在整个输入都匹配正则表达式时才会成功
		 *lookingAt只要输入的第一部分匹配就会成功
		 **/
		System.out.println(str+":"+d);
		
	}
    /**
     * 切割功能
     * 根据匹配给定的正则表达式来拆分此字符串
     * 组:(A(B(c)))从左的方向查看(A)(B)(C)
     * String[] =split(String regex+) 
     */
    public static void qiege(){
    	//String str="东邪-黄药%%%%%西毒-欧阳$$$$$$南帝-段誉@@@@@北丐-洪七公#####中师-王重阳";//字符串
		//String [] st=str.split("(.)\\1");//切割的方法在中的@,$,#的次数不确定的情况下("(.)\\1+")运用了组的该念
		//String str="东邪-黄药师.西毒-欧阳峰.南帝-段誉 .北丐-洪七公.中师-王重阳";"."是特殊符号要反义\\符号
		//String [] st=str.split("\\.");//切割的方法
		String str="东邪-黄药师 西毒-欧阳 南帝-段誉 北丐-洪七公 中师-王重阳";//字符串
		String [] st=str.split(" +");//切割的方法
		
		for(String name:st){
			System.out.println(name);
		}
	}
    /*替换操作
     * replaceFirst(String replacement):参数字符串replacement替换掉第一个匹配成功的部分
     * replaceAll(String replacement):参数字符串replacement替换所有匹配成功的部分。
     * appendRelacement(StringBuffer sbuf,String replacement):执行渐进式的替换
	 */
    public static void  tihuan(){
	   String name="东邪-黄药师*****西毒-欧阳峰%%%%%%南帝-段誉*****北丐-洪七公$$$$$$中师-王重阳";
	   String str=name.replaceAll("(.)\\1+","@");//替换将*$%="(.)\\1+"转换成(&) String replaceAll(String regex, String replacement) 
       //使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符 
	   System.out.println(str);
	   String  st="15993896018";
	   String s=st.replaceAll("(\\d{3})\\d{5}(\\d{3})", "$1*****$4");
	   System.out.println(s);
         } 
   public static void  huoqu(){
	
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值