1.概念
正则表达式本质上是一种字符串的操作规则,可以更灵活的操作字符串的匹配、拆分,替换。
2.正则标记
Pattern类:定义要使用的表达式对象。
Matcher类:用于进行正则标记与指定内容的匹配
2.1 单个字符
符号 | 含义 |
---|---|
\ | 转义字符’\‘ |
\n | 匹配换行(’\n‘)符 |
\r | 回车符 |
\t | 表示一个“\t”符号 |
eg:
String pattern="\\d+";
String content = "6789";
//进行匹配
boolean flag = content.matches(pattern);
System.out.println("--"+flag);
2.2 字符集
符号 | 含义 |
---|---|
[abc] | 表示可能是字符a、字符a、字符c中的任意一位 |
[^abc] | 表示不是字符a、字符a、字符c中的任意一位 |
[a-z] | 表示所有小写字母 |
[a-zA-Z] | 表示任意的一位字母,不区分大小写 |
[0-9] | 0到9的任意一个数字 |
String pattern="[789]";
String content = "8";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);//true
String pattern="[^789]";
String content = "1";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);//true
String pattern="[a-z]";
String content = "bdhdyd";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);//true
2.3 简化字符表达式
符号 | 含义 |
---|---|
. | 任意一位任何字符。 |
\d | 数字:[0-9] |
\D | 表示非数字 |
\w | 表示任意字母、数字、_组成 |
\W | 表示不是任意字母、数字、_组成 |
\s | 表示任意的空白字符,如:’\t‘’\n’ |
\S | 表示任意的非空白字符 |
eg:
String pattern=".";
String content = "#";
boolean flag = content.matches(pattern);
System.out.println("--"+flag); //true
//仅代表一位
String pattern="\\d";
String content = "8";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);
//仅代表一位
String pattern="\\w";
String content = "a";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);
//仅代表一位
String pattern="\\s";
String content = " ";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);
2.4 边界
符号 | 含义 |
---|---|
^ | 行的开头 |
$ | 行的结尾 |
eg:
//仅代表一位
String pattern="^3[0-9]{2}7$";
String content = "3567";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);
2.5 数量表达式
符号 | 含义 |
---|---|
? | 出现0次或1次 |
+ | 出现1次或者多次 |
* | 出现0次或1次、多次 |
{n} | 出现恰好n次 |
{n,} | 出现n次或者n次以上 |
{n,m} | 出现n次到m次 |
eg:
//仅代表一位
String pattern="47?";
String content = "4";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);
//仅代表一位
String pattern="[0-9]{1,}";
String content = "4567";
boolean flag = content.matches(pattern);
System.out.println("--"+flag);
3.问题
3.1 为什么要使用"\d"?
\代表转义符,\\ 描述的是\,所以如果要在字符串定义\,要使用\\,这就是要使用\\d的原因。