正则表达式极大的简化了我们的需求....

举个例子:

不用正则:

public class TestZZ {
	public static void main(String[] args) {
		if(isNumber("12345")){// 判断是否由数字构成
			System.out.println("由数字构成!");
		}else{
			System.out.println("不是由数字构成!");
		}
	}
	public static boolean isNumber(String str){
		char[] data = str.toCharArray();
		for (int i = 0; i < data.length; i++) {
			if(data[i]<'0' || data[i] >'9'){
				return false;
			}
		}
		return true;
	}
}

使用正则:

public class TestZZ {
	public static void main(String[] args) {
		if("123".matches("\\d+")){//利用正则表达式
			System.out.println("由数字组成!");
		}else{
			System.out.println("不是由数字组成!");
		}
	}
}

通过一个简单的对比,可以看出正则表达式使用起来,极为简便,大大简化了我们的代码难易程度。

下面让我们看下核心的正则表达式标记

  1. 字符,表示某个字符,只能出现1位

    x:表示是一个指定的一位字符,例如:编写一个a,表示字符a;

    \\:表示一位字符“\”

    \n:换行

  2. 字符范围,在指定的字符范围之中选1位,只能出现1位

    [abc] :表示可以是a,b,c中的任意一位

    [^abc]:表示不是a,b,c中的任意一位

    [a-zA-Z]:表示任意一个字符(大写或小写

    [0-9]:表示任意一个数字

  3. 简介表达式,表示1位

    .:表示任意一个字符

    \d:表示一位数字,等价于[0-9]

    \D:表示一位非数字,等价[^0-9]

    \s:表示一位空格,等价[\t\n\x0B\f\r]

    \S:表示一位非空格,等价[……\t\n\x0B\f\r]

   \w:表示一个字母,数字,_,等价[0-9a-zA-Z_]

   \W: 表示一个非字母,数字,_等价[^0-9a-zA-Z_]

4.数量表示

? 表示正则出现0或1

+ 表示正则出现1或多次

* 表示正则出现0或1次或多次

{n} 表示正则正好出现n次

{n,}表示正则出现n次以上

{n,m}表示正则出现n-m次