Fork me on GitHub

Java中的正则表达式

Java中应用正则表达式必须依靠Pattern与Matcher类,常用的正则规范一般如下:

序号 规范 描述
1 \ 表示反斜线(\)字符
2 \t 表示制表符
3 \n 表示换行
4 [abc] 字符a、b或c
5 [^abc] 表示除了a、b、c之外的任意字符
6 [a-z] 表示由字母a到z组成
7 \d 表示数字
8 \D 表示非数字
9 \w 表示字母、数字、下划线
10 \W 表示非字母、数字、下划线
11 \s 表示所有空白字符(换行、空格等)
12 \S 表示所有非空白字符
13 ^ 行的开头
14 $ 行的结尾
15 . 匹配除换行符之外的任意字符

如果说这一组是”质”的表示的话,那下一组就是量的表示

序号 规范 描述
1 X 必须出现一次
2 X? 可以出现0次或1次
3 X* 可以出现0次,1次或多次
4 X+ 可以出现一次或多次
5 X{n} 必须出现n次
6 X{n.} 必须出现n次以上
7 X{n,m} 必须出现n~m次

上面两组之后,就是逻辑运算符了,我们可以使用逻辑运算符来筛选更丰富的正则规范

序号 规范 描述
1 XY 既满足X规范又满足Y规范
2 X1Y X规范或Y规范
3 (X) 作为一个捕获组规范

举例:

正则表达式 匹配的字符串 不匹配的字符串
(A1B)(C1D) AC AD BC BD 其他所有字符串
A(B1C)*D AD ABD ACD ABCCBD BCD ADD ABCBC
A1(ABABA)* AAA BBAABB BABAAA ABA BBB BABBAAA

因博客文章中表格无法正确识别”|”符号,故上述表格中”|”均用1替代