Java的正则表达式

开发工具与关键技术:Java MyEclipse10
作者:清晨
撰写时间:8.8

下面是正则的表达式的基础说明
Java的正则表达式_第1张图片

/**
 * 作用:用于专门操作字符串
 * 特点:用于一些特定的符号来表示一些代码操作,这样就简化书写,主要是学习一些特殊符号的使用
      好处:可以简化对字符串的复杂操作。
      弊端:符号定义越多,正则越长,阅读性越差
 */
 //java中的正则表达式的匹配、切割、替换、获取的四种常用的操作
	public static void main(String[] args) {
			System.out.println("------正则的替换-------");
		String str="oadi3298324892adkal309290kdoda300000";//将字符串中的数组替换成# 
		  replaceAllDemo(str,"\\d{7,}","#"); 
		  String str1="aadkkkaooelliwoonbvxkksoll";//将叠词替换成& 
		  replaceAllDemo(str1,"(.)\\1+","&"); 
		  String str2="aadkkkaooelliwoonbvxkksoll";//将叠词的字符串替的确成单个字母 
		  replaceAllDemo(str1,"(.)\\1+","$1");//想要获取组的符号$,$1就是拿前面的这个规则中的组
		  System.out.println("-------用string类中来判断------");
		 RegexDemo.checkQQ_1();//判断是否是正真的扣扣号//栗子:a12345455
		 System.out.println("----------用正则来判断--------");
		 RegexDemo.checkqq();
		 System.out.println("-------切割-----------");
		 splitDemo();
	}
 //替换
	public static void replaceAllDemo(String str,String reg,String newStr){ 
		  str=str.replaceAll(reg, newStr); 
		  System.out.println(str); 
	}
/* 第一种方法
	 要求对QQ号码进行校验 
	 这种方式,使用了String类中的方法,进行组合完成了需求,但是代码过于复杂 
	 */
	public static void checkQQ_1() {
		String qq = "a12345455";
		int len = qq.length();
		if (len >= 5 && len <= 15) {
			if (!qq.startsWith("0")) {
				try {
					long l = Long.parseLong(qq);
					System.out.println("qq:" + l);
				} catch (Exception e) {
					System.out.println("出现非法字符");
				}

			} else {
				System.out.println("不可以以0开头");
			}
		}
	}

/* 第一种方法
	 要求对QQ号码进行校验 
	 这种方式,使用了String类中的方法,进行组合完成了需求,但是代码过于复杂 
	 */
	public static void checkQQ_1() {
		String qq = "a12345455";
		int len = qq.length();
		if (len >= 5 && len <= 15) {
			if (!qq.startsWith("0")) {
				try {
					long l = Long.parseLong(qq);
					System.out.println("qq:" + l);
				} catch (Exception e) {
					System.out.println("出现非法字符");
				}

			} else {
				System.out.println("不可以以0开头");
			}
		}
	}
 public static void splitDemo(){ 
		  String str="zhangsan lisi wangxu"; 
		  String reg=" +";//按逗号,空格切,切割的原理找到有,然后就去切 
		  //上面的加号就是只切一次空格,完了之后把后面的连接起来。还要注要.是一个特殊符号 
		  //不能用.去切,我们可以用转义。应该是这样String reg="\\." 
		  //如果要支切\\,如(c:\\abc\\a.txt),我们可以这样定义String reg="\\\\" 
		  //按照叠词完成切割sqltDemo("ddkdakfdssieowor","(.)\\1)");其中的.表示任意字符,\1表示匹配前一个字符 
		  //如果是ddd ssss ttttt这种的话,就在后面弄个"+",就是"(.)\\1+)" ,那个"+"是一个或多个的意思 
		    
		  String [] arr=str.split(reg); 
		  for(String s:arr){ 
		   System.out.println(s); 
		  } 
		 }

效果图
Java的正则表达式_第2张图片

你可能感兴趣的:(Technology)