一、介绍
- 正则表达式(Regular Expression),又称规则表达式。根据定义好的“语法规则”用来匹配、查找字符串。
二、语法
1、匹配字符
2、表示数量的字符
3、边界字符
//匹配开始是A的一个字符
String str1="AABBA";
String regex="^A";
String str2=str1.replaceAll(regex,"K"); //KABBA
//匹配结束位置是一个或多个A字符
String str1="AABBAA";
String regex="A+$";
String str2=str1.replaceAll(regex,"K"); //AABBK
4、其他字符
// () 表示一个整体
// | 表示或的关系
//以158或159开头
String str1="1583300";
String regex="^(158|159)\\d{4}";
boolean b=str1.matches(regex); //true
5、转义字符
- 当字符串中包含正则表达式中的含义字符时,需要转义才会把他当成普通字符来匹配
//将[替换成0
String str="[1234";
//若不转义则不代表普通字符[,而是正则表达式中的[
String regex="\\[";
String str1=str.replaceAll(regex,"0"); //01234
三、例子
1、邮箱
//单词字符1个或多个
//有一个@
//字母一个到多个
//. 和一个到多个字母
//这个整体一个到多个
"[a-zA-Z0-9_]+@[a-zA-Z]+(\\.[a-zA-Z]+)+";
2、用逗号分隔的数字集合1,2
//([1-9:一个到多个]
//[0-9:0或任意多个]
//,1个逗号
//* 前面部分0或任意多个
//后面同前面
"^([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标签
//将标签内和标签内的字符或者html的空格
//末尾的空白字符
//都替换成空串
str=str.replaceAll("(</?[^<>]+>)|( )","").replaceAll("\\s+$","");