Java正则表达式实例

一、用正则表达式写的简单的注册验证,具体要求如下:

用户注册验证(用户名,密码,昵称,中文名字,手机号,邮箱)所有信息符合以下条件才允许注册:

  1. 用户名格式:由字母数字下划线组成且开头必须是字母,不能超过16位;
  2. 密码格式:字母和数字构成,不能超过16位;
  3. 昵称:字母和数字构成长度大于6小于10;
  4. 手机号:全数字,长度为11位;
  5. 邮箱:必须包含@符号;必须包含点;点和@之间必须有字符;

所有信息符合上述条件才允许注册。

二、代码如下:

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String[] args) {

        Pattern p = null;
        Matcher m = null;
        boolean flag = true;
        Scanner sc = new Scanner(System.in);

        System.out.println("------用户注册------");
        //匹配用户名
        System.out.println("用户名:   ---(由字母数字下划线组成且开头必须是字母,不能超过16位)");
        String name = sc.nextLine();
        p = Pattern.compile("[a-zA-Z]{1}[a-zA-Z0-9_]{1,15}");
        m = p.matcher(name);
        flag = m.matches();

        //匹配密码
        System.out.println("密码:---(字母和数字构成,不能超过16位)");
        String pass = sc.nextLine();
        p = Pattern.compile("[a-zA-Z0-9]{1,16}");
        m = p.matcher(pass);
        flag = m.matches();

        //匹配昵称
        System.out.println("昵称:   ---(字母和数字构成长度大于6小于10) ");
        String nicheng = sc.nextLine();
        p = Pattern.compile("[a-zA-Z0-9]{7,9}");
        m = p.matcher(nicheng);
        flag = m.matches();

        //匹配手机号
        System.out.println("手机号:   ---(全数字,长度为11位)");
        String phone = sc.nextLine();
        p = Pattern.compile("[0-9]{11}");
        m = p.matcher(phone);
        flag = m.matches();

        //匹配邮箱
        System.out.println("邮箱:   ---(必须包含@符号;必须包含点;点和@之间必须有字符)");
        String email = sc.nextLine();
        p = Pattern.compile("[@]{1}[a-zA-Z0-9]+[.]+[a-z]+");
        m = p.matcher(email);
        flag = m.matches();

        if(flag) {
            System.out.println("注册成功");
        } else {
            System.out.println("信息填写不正确!");
        }

        sc.close();

    }
}

你可能感兴趣的:(Java正则表达式实例)