文章目录
- 一、介绍
- 二、语法
- 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+$","");