正则表达式略写

前端之家收集整理的这篇文章主要介绍了正则表达式略写前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

截取字符串

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,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);//结果:我要学编程
	}

猜你在找的正则表达式相关文章