正则表达式的作用:
1、校验字符串是否满足规则。
2、在一段文本中查找满足要求的内容。
一、正则表达式的规范:
1.字符类(只能匹配一个字符)
[abc] | 只能是a,b,c |
[^abc] | 除a,b,c以外的字符。 |
[a-zA-Z] | a-z A-Z (包括a,z,A,Z)。 |
[a-d[m-p]] | a到d或者m到p。 |
[a-z&&[def]] | a到z和d,e,f的并集。 |
[a-z&&[^bc]] | a到z和非b,c的并集。 (等同于[ad-z]) |
[a-z&&[^m-p]] | a到z和非m到p的并集。 (等同于[a-lq-z]) |
接下来举几个例子:
System.out.println("a".matches("[abc]"));
//结果为true
System.out.println("z".matches("[a-zA-Z]"));
//结果为true
System.out.println("zz".matches("[a-zA-Z]"));
//false,这样只能判断一个字符
System.out.println("zz".matches("[a-zA-Z][a-zA-Z]"));
//ture
二、1、预定义字符(只能匹配一个字符)
. | 任何字符 |
\d | 一个数字: [0-9] |
\D | 非数字: [^0-9] |
\s | 一个空白字符: [\t \n\x0B\f\r] |
\S | 非空白字符: [^\s] |
\w | 英文、数字、下划线:[a-zA-Z_0-9] |
\W | 一个非单词字符: [^\w] |
2、数量词:
X? | X,一次或0次 |
X* | X,0次或多次 |
X+ | X,一次或多次 |
X{n} | X,正好n次 |
X{n,} | X,至少n次 |
X{n,m} | X,至少n次但不超过m次 |
下面举一些例子:
// . 表示任意一个字符
System.out.println("你".matches("."));//true
System.out.println("你".matches(".."));//false
System.out.println("你我".matches(".."));//true
// 两个\\ 表示一个\
// \\d表示任意一个数字
System.out.println("a".matches("\\d"));//false
System.out.println("1".matches("\\d"));//true
System.out.println("321".matches("\\d\\d\\d"));//ture
// \\w 只能是一位单词字符[a-zA-Z_0-9]
System.out.println("a".matches("."));//ture
System.out.println("aa".matches(".."));//false
System.out.println("_".matches(".."));//ture
// 数字,下划线,字母,6位
System.out.println("abxswa".matches("\\w{6}"));//ture