文章目录
- 正则表达式
- 作用
- 基本用法
- 小结
- 代码
- 案例:校验用户输入的电话,邮箱,是否合法
- \\.是什么意思
黑马学习笔记
正则表达式
由一些特定的字符组成,代表的是一个规则
作用
- 用来校验数据格式是否合法
- 在一段文本中查找满足要求的内容
基本用法
进API查,或者使用的时候直接搜
小结
代码
/**
* @Author: ggdpzhk
* @CreateTime: 2024-09-02
* 校验QQ号码是否正确,要求全部是数字,长度是(6-20)之间,不能以0开头
*/
public class regex {
public static void main(String[] args) {
String qq = "12366589";
String qq1 = "q1256d3";
String qq2 = "03336";
System.out.println(cheakQQ(qq));
System.out.println(cheakQQ(qq1));
System.out.println(cheakQQ(qq2));
System.out.println(cheakQQ2(qq));
System.out.println(cheakQQ2(qq1));
System.out.println(cheakQQ2(qq2));
}
//使用正则表达式
public static boolean cheakQQ2(String qq) {
return qq != null && qq.matches("[1-9]\\d{5,19}");//第一个数字是1-9,后面是0-9的数字,长度是6-20,
// \\d{a,b}表示后边数字的位数,如:\d{3}表示3位数字,\d{1,3}表示1-3位数字
// \\d 是转义字符
}
public static boolean cheakQQ(String qq) {
//1. 判断号码是否为null
if (qq == null || qq.startsWith("0") || qq.length() < 6 || qq.length() > 20) {
return false;
}
//2. 判断qq号码是否为纯数字
for (int i = 0; i < qq.length(); i++) {
if (qq.charAt(i) < '0' || qq.charAt(i) > '9') {
return false;
}
}
return true;
}
}
案例:校验用户输入的电话,邮箱,是否合法
package regex;
import java.util.Scanner;
/**
* @Author: ggdpzhk
* @CreateTime: 2024-09-02
*
* 校验用户输入的电话,邮箱,是否合法
*/
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入您的电话号码:");
String phone = sc.next();
if(cheakPhone(phone)){
System.out.println("电话号码合法");
break;//注意!!!!
}else{
System.out.println("电话号码不合法");
}
}
while (true) {
System.out.println("请输入您的qq邮箱:");
String email = sc.next();
if(cheakEmail(email)){
System.out.println("邮箱合法");
break;
}else{
System.out.println("邮箱不合法");
}
}
while (true) {
System.out.println("请输入您的密码:(6-10位,包含数字和大小写字母)");
String password = sc.next();
if(cheakPassword(password)){
System.out.println("密码合法");
break;
}else{
System.out.println("密码不合法");
}
}
}
private static boolean cheakPassword(String password) {
return password.matches("^[a-zA-Z0-9]{6,10}$");
}
//检查输入邮箱是否满足格式
/*
@qq.com 前面的位数在5 - 10 之间,第一位不能是0
* */
private static boolean cheakEmail(String email) {
return email.matches("^[^0][0-9a-zA-Z]{4,9}@qq\\.com$");
}
//检查电话是否合法
/*
1. 11位
2. 不能以0开头
3. 不能有数字以外的字符
*/
public static boolean cheakPhone(String phone){
return phone.matches("^[1][3-9][0-9]{9}$");
// ^ $ 表示字符的开始和结束 第一位只能是1 第二位是3-9 后面9位是0-9
}
}