1.概念和作用
正则表达式
* 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
* 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的
2.常见对象
(1)字符类
[abc] | a、b 或 c(简单类) |
[^abc] | 任何字符,除了 a、b 或 c(否定) |
[a-zA-Z] | a 到 z 或 A 到 Z,两头的字母包括在内(范围) |
[a-d[m-p]] | a 到 d 或 m 到 p:[a-dm-p](并集) |
[a-z&&[def]] | d、e 或 f(交集) |
[a-z&&[^bc]] | a 到 z,除了 b 和 c:[ad-z](减去) |
[a-z&&[^m-p]] | a 到 z,而非 m 到 p:[a-lq-z](减去) |
(2)预定义字符
. | 任何字符(与行结束符可能匹配也可能不匹配) |
\d | 数字:[0-9] 需要用转义字符 |
\D | 非数字: [^0-9] 需要用转义字符 |
\s | 空白字符:[ \t\n\x0B\f\r] 水平制表符,换行符,垂直制表符,换页符,回车 需要用转义字符 |
\S | 非空白字符:[^\s] 需要用转义字符 |
\w | 单词字符:[a-zA-Z_0-9] 需要用转义字符 |
\W | 非单词字符:[^\w] 需要用转义字符 |
(3)数量词
X? | X,一次或一次也没有 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,恰好 n 次 |
X{n,} | X,至少 n 次 |
X{n,m} | X,至少 n 次,但是不超过 m 次 |
3.Pattern和Matcher
* 典型的调用顺序是
* Pattern p = Pattern.compile("a*b"); 获取到正则表达式
* Matcher m = p.matcher("aaaaab"); 获取匹配器
* boolean b = m.matches(); 看是否能匹配