正则表达式
1.什么是正则表达式
正则表达式能够描述字符串的格式
通常用于验证字符串内容
正则表达式并不是java语言的内容,而是独立于编程语言的体系
2.为什么需要正则表达式
在人机信息交互时,可以让计算机验证用户输入的内容是否匹配
比如Email,手机号,身份证号等
3.正则表达式字符说明
一个字符
正则表达式 | 说明 |
---|---|
[abc] | a,b,c中任意一个字符 |
[^abc] | 除了a,b,c的任意字符 |
[a-z] | a到z任意一个字符 |
[a-zA-Z0-9] | a-z,A-Z,0-9任意一个字符 |
[a-z&&[^bc]] | a-z中除了b,c以外的任意一个字符 &&表示“与”的关系 |
预定义字符
正则表达式 | 说明 |
---|---|
. | 任意一个字符 |
\d | 任意一个数字字符 |
\w | 单词字符 相当于[a-zA-Z0-9] |
\s | 空白字符 |
\D | 非数字字符 |
\W | 非单词字符 |
\S | 非空白字符 |
数量词
正则表达式 | 说明 |
---|---|
X? | 表示0个或1个X |
X* | 表示0个或任意多个X |
X+ | 表示1个到任意多个X |
X{n} | 表示n个X |
X{n,} | 表示n个到任意多个X |
X{n,m} | 表示n个到m个X |
正则验手机号
public class MatchDemo {
public static void main(String[] args) {
String phone="19990949008";
/*
* 1[0-9&&[^0124]][0-9]{9}
* 1[356789]\d{9}
*/
String regex="1[356789]\\d{9}";
System.out.println(phone.matches(regex));
}
}
结果为True
正则验证email
public class MatchDemo2 {
public static void main(String[] args) {
/*
* [a-zA-Z0-9_]{1,}@[a-zA-Z0-9]{1,}(\.[a-zA-Z]{1,}){1,}
* \w+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+
*/
String email="1806141673@qq.com";
String regex="\\w+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
System.out.println(email.matches(regex));
}
}
运行结果为True