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