正则表达式
概述
本质上是一些字符串,代表的是一个规则
作用
用来校验数据格式是否合法
在一段文本中查找满足要求的要求
书写规则
限定符
?代表前面的字符出现0次或者1次
*会匹配0个或多个字符
b{5} {2,6} {2,}花括号代表出现的次数
(ab)+ ”+“代表重复出现的字符
字符类
[abc]表示要求匹配出现的abc
[1-9a-AA-Z]代表1-9,a-z,A-Z
[^0-9] "^"表示匹配除了0-9以外的字符
元字符
\d数字字符 \D非数字字符
\w单词字符 \W非单词字符
\s空白符 \S非空白字符
. 代表字符
[^a]匹配行首的a
[$a]匹配行尾的a
贪婪匹配
*,+,{}在匹配字符的时候会尽可能匹配多的字符
//匹配html标签
<.+>会将内容全部匹配
而加上?
<.+?>会将贪婪匹配切换为懒惰匹配
实际需求
校验用户输入的电话,邮箱,电话是否合法
public static void checkPhone() {
System.out.println("请您输入手机号");
String phone = new Scanner(System.in).next();
/*
* 18653559876
* 020-4344245
* 01044535413
* */
if (phone.matches("(1[3,9]\\d{9}|(0[1-9]\\d{1,4})-?[1-9]\\d{4,9})")) {
System.out.println("恭喜您,手机号正确");
} else {
System.out.println("您输入的手机格式有毛病,请重新输入");
}
}
public static void checkEmail() {
System.out.println("请您输入邮箱");
String email = new Scanner(System.in).next();
if (email.matches("\\w{2,30}@\\w{2,20}(\\.\\w{2,10}){1,2}")) {
System.out.println("恭喜您,邮箱正确");
} else {
System.out.println("您输入的邮箱格式有毛病,请重新输入");
}
}
标签:字符,匹配,正则表达式,System,println,输入,out
From: https://www.cnblogs.com/yifan0820/p/17827124.html