正则中的特殊字符
特殊用法的匹配符
特殊字符 | 说明 |
---|
\ | 用于转义下一个字符,或指定八进制、十六进制字符。如果需匹配\字符,请用 \\ |
() | 表示子表达式,标记子表达式的开始和结束位置。要匹配这些字符,请使用(和) |
[] | 表示枚举或“并”运算,用于确定中括号表达式的开始和结束位置。要匹配这些字符,请使用[和] |
- | 表示范围,例如[a-f]表示 a~f 范围内的任意字符 |
字符匹配符
特殊字符 | 说明 |
---|
. | 匹配除换行符\n之外的任何单字符。要匹配.字符本身,请使用 \. |
\d | 匹配 0~9 的所有数字,(d 是 digit 的意思,代表数字) |
\D | 匹配非数字 |
\s | 匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等,(s 是 space 的意思,代表空白) |
\S | 匹配所有的非空白字符 |
\w | 匹配所有的单词字符,包括 0~9 所有数字、26 个英文字母和下划线_ (w 是 word 的意思,代表单词) |
\W | 匹配所有的非单词字符 |
X | 字符x(x 可代表任何合法的字符) |
\cx | x 对应的的控制符。例如,\cM匹配 Ctrl-M。x 值必须为 A~Z 或 a~z 之一 |
\0mnn | 八进制数 0mnn 所表示的字符 |
\xhh | 十六进制值 0xhh 所表示的字符 |
\uhhhh | 十六进制值 0xhhhh 所表示的 Unicode 字符 |
\t | 制表符(“\u0009”) |
\n | 新行(换行)符(‘\u000A’) |
\r | 回车符(‘\u000D’) |
\f | 换页符(‘\u000C’) |
\a | 报警(bell)符(‘\u0007’) |
\e | Escape 符(‘\u001B’) |
次数匹配符
特殊字符 | 说明 |
---|
* | 指定前面子表达式可以出现零次或多次。要匹配 * 字符本身,请使用 \* |
+ | 指定前面子表达式可以出现一次或多次。要匹配 + 字符本身,请使用 \+ |
? | 指定前面子表达式可以出现零次或一次。要匹配 ?字符本身,请使用 \? |
{} | 用于标记前面子表达式的出现频度,如{n}表示出现n次,{n,}表示出现n次以上,{n,m}表示最少出现 n 次,最多出现 m 次。要匹配这些字符,请使用 \{ 和 \} |
边界匹配符
特殊字符 | 说明 |
---|
^ | 匹配一行的开头。要匹配 ^ 字符本身,请使用 \^ |
$ | 匹配一行的结尾。要匹配 $ 字符本身,请使用 \$ |
\b | 单词的边界 |
\B | 非单词的边界 |
\A | 输入的开头 |
\G | 前一个匹配的结尾 |
\Z | 输入的结尾,仅用于最后的结束符 |
\z | 输入的结尾 |
运算匹配符
特殊字符 | 说明 |
---|
() | 表示子表达式,标记子表达式的开始和结束位置。要匹配这些字符,请使用(和) |
[] | 表示枚举或“并”运算,用于确定中括号表达式的开始和结束位置。要匹配这些字符,请使用[和] |
- | 表示范围,例如[a-f]表示 a~f 范围内的任意字符 |
^ | 表示求否,例如[^abc]表示非 a、b、c 的任意字符 |
&& | 表示“与”运算,[a-z&&^bc]]是 a~z 范围内的所有字符,除 b 和 c 之外 |
| | 指定两项之间任选一项。如果要匹配丨字符本身,请使用 | |
正则表达式用法
简单的正则表达式
String regx = "a{2}";
String regx1 = "\\d+";
String regx2 = "a{2}\\d+";
String封装的正则表达式
System.out.println("aa.matches()" +"正则结果"+ "aa".matches("a{2}"));
System.out.println("aac.replaceFirst()" +"正则结果"+ "aac".replaceFirst("a","z"));
System.out.println("aac.replaceAll()" +"正则结果"+ "aac".replaceAll("a","z"));
String[] split = "苹果*3".split("\\*");
System.out.println("苹果*3.split()输出开始");
for (String str:split){
System.out.println(str);
}
System.out.println("苹果*3.split()输出结束");
输出结果