1.预定义字符
. 可以匹配任意字符
\d 匹配0-9的所有数字
\D 匹配非数字
\s 匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等
\S 匹配所有非空白字符
\w 匹配所有的单词字符,包括数字和字母以及下划线
\W 匹配所有的非单词字符
[\\u0041-\\u0056] 匹配所有中文
2.边界匹配符
^ 行的开头
$ 行的结尾
\b 单词的边界
\B 非单词边界
\A 输入的开头
\G 前一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符
\z输入的结尾
3.[]的用法:
- 表枚举:[abc]取abc之一
- -表范围:[a-zA-Z]所有字母取一个
- ^表求否:[^abc] 非abc的任意字符
- 表示与&&:[a-z&&[bcd]]取交集,表示b或c或d
4.正则表达式支持的数量标识符有以下几种模式:
- Greedy(贪婪模式):尽可能多的匹配
- Relunctant(勉强模式):尽可能少的匹配
举个例子:
String str = "Hello,java!";
\\采用贪婪模式匹配,将输出 $,java!
System.out.println("str.replaceFirst("\\w*","$"); \\使用$替换\w*匹配到的字符串
\\采用勉强模式匹配,将输出 $Hello,java!
System.out.println("str.replaceFirst("\\w*?","$"); \\使用$替换\w*匹配到的字符串