java正则表达式学习二

常用的正则表达式符号:

java正则表达式学习二_第1张图片

下面我们我们就来看几个常用的正在表达式:

1、IP地址的正则表达式:

	public void checkIp(){
		/**
		 * 格式:
		 * 前三位:
		 *  0到9
		 *  或者1到9,0到9
		 *  或者1,0到9,0到9
		 *  或者2,0到4,0到9
		 *  或者2,5,  0到5
		 * 后四位包括.,然后重复三位数字位:
		 *  .
		 *  0到9, 0到9, 0到9
		 *  或者1, 0到9, 0到9
		 *  或者2, 0到4, 0到9
		 *  或者2,5,      0到5*/
		String rexp = "([1-9]|"
				+ "[1-9]\\d|"
				+ "1\\d{2}|"
				+ "2[0-4]\\d|"
				+ "25[0-5])"
				+ "(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";
		
		Pattern pattern = Pattern.compile(rexp);
		Matcher mat = pattern.matcher("192.0.0.0");
		boolean b = mat.matches();
		
		System.out.println(b);
	}

2、中文字符检测:

	public void checkChineseCharacter(){
		Pattern p = null; //正则表达式
		Matcher m = null; //操作的字符串
		boolean b = false;
		//正则表达式表示汉字的一串字符串
		p = Pattern.compile("^[\u4e00-\u9fa5]+$");
		m = p.matcher("直播吧");
		b = m.matches();
		System.out.println("中文名正确:"+b); //输出:true
		//
		p = Pattern.compile("^[\u4e00-\u9fa5]+$");
		m = p.matcher("nick");//错误 只能是中文
		b = m.matches();
		System.out.println("中文名错误:"+b); //输出:false
	}

3、邮件地址格式检测:

	public void checkEmail(){
		Pattern p = null; //正则表达式
		Matcher m = null; //操作的字符串
		boolean b = false;
		//正则表达式表示邮箱号码
		p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
		m = p.matcher("[email protected]");
		b = m.matches();
		System.out.println("email号码正确:"+b); //输出:true
		//
		p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
		m = p.matcher("user.test.com");//错误 @应为.
		b = m.matches();
		System.out.println("email号码错误:"+b); //输出:false
	}

一个好的正则表达式的编写也是有难度的,编写之前必须要属性正则表达式的各个符号所代表的意思,如果需要对匹配进程操作,如:替换,截取,

获取固定位,则需要熟悉Matcher类中各个方法,使用正则表达式有时候会比用代码实现更加简洁高效,但是正则表达式没有经过严格测试也容易引

入bug,总之正则表达式很容易入门,但是一个好的正则表达式编写员也是很难练成的。

你可能感兴趣的:(java正则表达式学习二)