文章目录
- 一、介绍
- 二、语法
- 1、匹配字符
- 2、表示数量的字符
- 3、边界字符
- 4、其他字符
- 5、转义字符
- 三、例子
- 1、邮箱
- 2、用逗号分隔的数字集合1,2
- 3、允许一位小数
- 4、20yy-mm-dd日期格式
- 5、手机号
- 6、匹配html、xml标签
一、介绍
- 正则表达式(Regular Expression),又称规则表达式。根据定义好的“语法规则”用来匹配、查找字符串。
二、语法
1、匹配字符
| 语法 | 描述 |
|---|
| [a-z] | a-z的任意一个字符 |
| [a-zA-Z0-9] | a-zA-Z0-9中的任意一个字符 |
| [^abc] | 除了abc的任意字符 |
| [a-z&&[^bc]] | a-z中除了bc以外的任意字符 |
| . | 任意一个字符 |
| \d | 任意一个数字字符=[0-9] |
| \D | 非数字字符 |
| \w | 单词字符[a-zA-Z0-9_ ] |
| \W | 非单词字符 |
| \s | 空白字符[\t\n\r\f] |
| \S | 非空白字符 |
2、表示数量的字符
| 语法 | 描述 |
|---|
| x? | 表示0个或1个x |
| x* | 表示0个或任意多个x |
| x+ | 表示大于等于1个 |
| x{n} | 表示n个x |
| x{n,} | 表示大于等于n个 |
| x{n,m} | 表示n到m个 |
3、边界字符
String str1="AABBA";
String regex="^A";
String str2=str1.replaceAll(regex,"K");
String str1="AABBAA";
String regex="A+$";
String str2=str1.replaceAll(regex,"K");
4、其他字符
String str1="1583300";
String regex="^(158|159)\\d{4}";
boolean b=str1.matches(regex);
5、转义字符
- 当字符串中包含正则表达式中的含义字符时,需要转义才会把他当成普通字符来匹配
String str="[1234";
String regex="\\[";
String str1=str.replaceAll(regex,"0");
三、例子
1、邮箱
"[a-zA-Z0-9_]+@[a-zA-Z]+(\\.[a-zA-Z]+)+";
2、用逗号分隔的数字集合1,2
"^([1-9]+[0-9]*,)*[1-9]+[0-9]*$";
3、允许一位小数
"(^0\.[1-9]$)|(^[1-9]\d*(\.\d)?$)";
4、20yy-mm-dd日期格式
"^20\d{2}-(0|1){1}[0-9]-(0|1|2|3){1}[0-9]$";
5、手机号
"^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$";
6、匹配html、xml标签
str=str.replaceAll("(</?[^<>]+>)|( )","").replaceAll("\\s+$","");