image.png
    if (phone.matches(“\w{1,30}@[a-zA-Z0-9]{2,20}(\.[a-zA-Z0-9]{2,20}){1,2}”))
    \ w是表示后面要匹配数字,字母,下划线
    匹配邮箱的正则:正则中的{1,30} 是匹配数字出现的次数(大于1一次,小于30次),【】号表示的是匹配的类型(小写a到z,大写A-Z,数字0-9) {2,20}表示出现的次数:@ 后面的qq 表示 出现两次
    (.[a-zA-Z0-9]{2,20}){1,2} 这里的{1,2} 表示括号中的(.[a-zA-Z0-9]{2,20})匹配的域名,要么出现一次要么出现两次

    1. package com.itheima.d6_regex;
    2. import java.util.Scanner;
    3. public class RegexTest3 {
    4. public static void main(String[] args) {
    5. // 目标: 校验 手机号 邮箱 电话号码
    6. checkPhone();
    7. checkTel();
    8. }
    9. // 定义一个手机号校验的方法
    10. public static void checkPhone(){
    11. Scanner sc = new Scanner(System.in);
    12. while (true) { // 定义一个死循环,如果不成功,就一直判断
    13. System.out.println("请您输入您的注册手机号码:");
    14. String phone = sc.next();
    15. // 判断手机号的格式是否正确
    16. if (phone.matches("1[3-9]\\d{9}")){ // 第一位是1 第二位范围是3-9 剩下的9位匹配数字(出现9次)
    17. System.out.println("手机号格式正确,注册完成");
    18. break; // 判断成功,跳出当前循环(while)
    19. }else {
    20. System.out.println("格式有误!");
    21. }
    22. }
    23. }
    24. public static void checkEmail(){ // 匹配邮箱
    25. Scanner sc = new Scanner(System.in);
    26. while (true) {
    27. System.out.println("请您输入您的注册邮箱:");
    28. String email = sc.next();
    29. // 判断邮箱格式是否正确 2894266590@qq.com
    30. // \w 匹配数字字母下划线
    31. if (email.matches("\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2}")){// 单独一个小数点表示任意一个字符 所以要加\转义, 但是还要再加\,代表就是一个斜杠
    32. //(\.[a-zA-Z0-9]{2,20}){1,2} 这里的{1,2} 表示括号中的(\.[a-zA-Z0-9]{2,20})匹配的域名,要么出现一次要么出现两次
    33. System.out.println("邮箱格式正确");
    34. break;
    35. }else {
    36. System.out.println("邮箱格式错误");
    37. }
    38. }
    39. }
    40. // 定义一个校验电话(座机)的正则
    41. public static void checkTel(){
    42. Scanner sc = new Scanner(System.in);
    43. while (true) {
    44. System.out.println("请您输入您的电话号码:");
    45. String tel = sc.next();
    46. // 判断邮箱格式是否正确 027-3572457
    47. // 这里 -?后面加一个问号?代表:这个 - 出现一次,或者一次都不
    48. if (tel.matches("0\\d{2,6}-?\\d{5,20}")){ // 匹配后面这个数字
    49. System.out.println("格式正确,注册完成");
    50. break;
    51. }else {
    52. System.out.println("格式错误");
    53. }
    54. }
    55. }
    56. }