正则表达式略写

截取字符串

public static void main(String[] args) {
		
		//split截取字符串
		String str="xiao,jian,bin";
		String reg=",";
		String[]arrs=str.split(reg);
		
		for (String string : arrs) {
//			System.out.println(string);
		}
		
		String str2="xiao     jian   bin";
		String reg2=" +";//reg2表示“空格+”,在这里’+‘跟在空格“ ”后面表示一个或多个空格
		String[]arrs2=str.split(reg);
		
		for (String string : arrs2) {
//			System.out.println(string);
		}
		
		String str3="xiao.jian.bin";
		//表示用’.‘切割,因为’.‘是特殊字符,所以用斜杠’\.‘,因为’\‘也是特殊字符,所以“\\.”
		String reg3="\\.";
		String[]arrs3=str3.split(reg3);
		
		for (String string : arrs3) {
//			System.out.println(string);
		}
		
		String str4="c:\\abc\\sa.txt";
		//使用'\'匹配,需要“\\”,同理“\\”来匹配,则“\\\\”
		String reg4="\\\\";
		String[]arrs4=str4.split(reg4);
		
		for (String string : arrs4) {
//			System.out.println(string);
		}
		
		String str5="xiaokkkjianeeeeeebin";
		//这里运用“组”的概念:“()”,可让该规则可重用,’.‘表示任意字符,
        //"(.)\\1+"第一个字符为任意字符,“\1“表示第二个和第一个字符一致,因’\‘为特殊字符所以“\\1“,
		//后面跟一个’+‘表示第二个字符出现一次或多次
		String reg5="(.)\\1+";
		String[] arrs5=str5.split(reg5);
		
		for (String string : arrs5) {
			System.out.println(string);
		}
	}

//替换字符串

	public static void main(String[] args) {
		
		//repalceAll替换所有
		
		String strings="80320080ifief8909sdfslf989080080808";
		//第一位为数字,以后出现的数字个数大于5或等于5位
		String mode="\\d{5,}";
		String afterStr=strings.replaceAll(mode, "*");
		System.out.println(afterStr);//*ifief8909sdfslf*
		
		
		String strings2="sajdflkkkkkewfljslfeeeeee";
		//第一位为数字,以后出现的数字个数大于5或等于5位
		String mode2="(.)\\1+";
		String afterStr2=strings2.replaceAll(mode2, "&");
		System.out.println(afterStr2);//sajdfl&ewfljslf&
		
		String strings3="sajdflkkkkkewfljslfeeeeee";
		//第一位为数字,以后出现的数字个数大于5或等于5位
		String mode3="(.)\\1+";
		String afterStr3=strings3.replaceAll(mode3, "$1");
		System.out.println(afterStr3);//sajdflkewfljslfe,叠词部分变为一个字符
		
	}

//判断是否匹配

	public static void main(String[] args) {
		
		//Matches匹配
		String s="a3333";
		//‘^'以什么字符开头,'$'以什么字符结束,'*'标示出现一次或者多次,"\d"标示整数,需要用'\'转义
		String mode="^[a-z]\\d*$";
		System.out.println(s.matches(mode));//结果:true
		
		
		String num="123456";
		//确定第一位是整数"[0-9]","\d{5,14}"表示出现5位到14位整数
		String mode2="[0-9]\\d{5,14}";
		System.out.println(num.matches(mode2));//结果:true
		
		//电话号码号段匹配13xxxx,15xxxx,18xxxx
		String telNum="13588889999";
		//第一位"[0-9]"数字,第二位“[3,8,5]”为其中的一位,”\d{9}“后面9位为整数
		String mode3="[0-9][3,8,5]\\d{9}";
		System.out.println(telNum.matches(mode3));//结果:true
	}

//matcher,Pattern

	public static void main(String[] args) {
		
		/**
		 * 匹配*/
		String reg="[0-9]\\d{5,12}";//规则
		String str="123456";
		//三步曲
		//1,将规则封装成正则对象
		Pattern pattern=Pattern.compile(reg);
		//2,让正则对象和要作用的对象关联起来,获取匹配器对象
		Matcher matcher=pattern.matcher(str);
		//字符串匹配功能
		boolean flag=matcher.matches();
		System.out.println(flag);
		
		/**
		 * 将三个字符组成的单词取出*/
		String str2="wolll shi zhong guo chan dang";//规则
		// “\b” 表示边界
		String reg2="\\b[a-z]{3}\\b";
		Pattern pattern2=Pattern.compile(reg2);
		Matcher matcher2=pattern2.matcher(str2);
       //matcher2.find()规则作用在字符串上之后,并对符合规则的子字符串进行查找
       //matcher.group()获取匹配后的字符串
		//matcher2.start()返回子字符串的开始索引
		//matcher2.end()返回子字符串的结束索引
		while (matcher2.find()) {
			System.out.println(matcher2.group());
			System.out.println(matcher2.start()+"----"+matcher2.end());
			
			/**
			 * 结果:   shi
					6----9
					guo
					16----19*/
		}
		
	}


//正则表达式例子的运用

public static void main(String[] args) {
		
		String string="我我我....要要要....学学.....编....程程程程";
		//用“”代替所有的点号
		String string2=string.replaceAll("\\.+", "");//"\\.+"表示一个点或者多个点
        System.out.println(string2);//结果:“我我我要要要学学编程程程程”
        
        String string3=string2.replaceAll("(.)\\1+","$1");//用本组的第一个替换本组
        System.out.println(string3);//结果:我要学编程
	}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值