前言:正则表达式在处理文本数据方面十分快速有效
1. 限制字符(用来做一些规定,比如限制开头、结尾、个数...)
序号 | 字符 | 解释说明 |
---|---|---|
1 | ^ | 匹配字符串开始位置 |
2 | $ | 匹配字符串结束位置 |
3 | * | 匹配 0 个到多个 |
4 | + | 匹配 1 个到多个 |
5 | ? | 匹配 0 个 或 1 个 |
6 | {n} | 匹配 n 个 |
7 | {n, m} | 匹配 n <= 个数 <= m |
2. 特殊字符(用来表示一些特殊符号)(需要的时候要进行转义就是前面多加一个\)
序号 | 字符 | 解释说明 |
---|---|---|
1 | . | 万能匹配字符,可以匹配除 \r\n 之外的任何单个字符 |
2 | \d | 匹配数字字符,0 - 9 |
3 | \D | 匹配非数字字符,和 \d 功能相反 |
4 | \s | 匹配任何空白字符(空格、制表符、换页符) |
5 | \S | 匹配任何非空白字符,和 \s 功能相反 |
6 | \r | 匹配换行符 |
7 | \n | 匹配回车符 |
3. 字符集符号(用来表示一些字符的集合)
序号 | 字符 | 解释说明 |
---|---|---|
1 | [xyz] | 匹配这个 [ ] 内包含的字符 |
2 | [^xyz] | 匹配除这个 [ ] 内包含的字符,和 [xyz] 功能相反 |
3 | [a-z] | 匹配 a-z 的小写字母字符 |
4 | [A-Z] | 匹配 A-Z 的大写字母字符 |
5 | [a-zA-Z] | 匹配所有大小写字母字符 |
6 | [^a-zA-Z] | 匹配除了大小写字母字符之外的字符,^ 这个符号的作用相当于取反操作 |
7 | [0-9] | 匹配 0-9 所有数字字符,等价于 \d 这个特殊字符 |
8 | | | 相当于逻辑里的或,例如 x|y,匹配的是 x 或 y (十分重要!!!) |
4. 捕获组
捕获组是从左至右计算 ( 来编号,例如表达式:((A)(B(C)))
0 组::((A)(B(C)))
1 组:(A)
2 组::(B(C))
3 组::(C)
String str = "I Love China!";
String regex = "([A-Z]|[a-z]|[ ]|[!])+";
System.out.println(str.matches(regex));