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替代