JAVA 正则表达式 及 案例
目录
- JAVA 正则表达式 及 案例
- 1.正则表达式Regex
- 1.1 概述
- 1.2 常见语法
- 1.3 String提供了支持正则表达式的方法
- 1.4 练习:测试输入身份证号
 
1.正则表达式Regex
1.1 概述
正确的字符串格式规则。
 常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。
1.2 常见语法

1.3 String提供了支持正则表达式的方法
Matches(正则) : 当前字符串能否匹配正则表达式
 replaceAll(正则,子串) : 替换子串
 split(正则) : 拆分字符串
1.4 练习:测试输入身份证号
创建包: cn.tedu.api
 创建类: TestRegex.java
package cn.tedu.api;
import java.util.Scanner;
/**本类用作正则表达式的入门案例*/
public class TestRegex {
    public static void main(String[] args) {
        //1.编辑正则表达式
        //需求:接收用户输入的身份证号,判断用户输入的是否正确
        //身份证号的规律:共18位,前17位都是数字,最后一位有可能是数字,也有可能是X
        String regex = "[0-9]{17}[0-9X]";
        /**单个\在Java中有特殊的含义,表述转义符号,不认为这是一个单纯的斜杠
         * 所以如果想要表示斜杠,需要在它的前面加一个用来转义的斜杠
         * 也就是:写\\才表示这是一个单纯的斜杠
         * \t--制表符 \r--回车符 \n--换行符*/
        String regex2 = "\\d{17}[0-9X]";
        //2.提示并接收用户输入的身份证号
        System.out.println("请输入您的身份证号:");
        String input = new Scanner(System.in).nextLine();
        //3.判断用户输入的是否正确
        if(input.matches(regex)){
            System.out.println("恭喜你!输入正确");
        }else{
            System.out.println("很抱歉!输入错误!");
        }
    }
}
改进代码
package cn.tedu;
import java.util.Scanner;
/**本类用于正则表达式入门案例*/
//需求:接收用户输入的身份证号,并将判断的结果输出
public class TestRegex {
    public static void main(String[] args) {
        //1.编辑正则表达式
        //身份证号的规律:一共是18位,前17位是数字,第18位有可能是数字,也有可能是X
        //String regex = "[0-9]{17}[0-9X]";
        /*单个\在Java中有特殊的含义,表示转义符号,不认为是一个斜杠
        * 所以如果想要表示斜杠,需要在它的前面加一个用来转义的\
        * 也就是\\才表示成一个单纯的斜杠
        * \t -- 制表符 \r回车符 \n换行符*/
        String regex = "\\d{17}[0-9X]";
        //2.定义变量用来接收用户输入的身份证号:
        String input;
        //3.判断用户输入的数据是否符合正则表达式。如果不正确,继续输入
        do{
            System.out.println("请输入您的身份证号:");
            input = new Scanner(System.in).nextLine();
            if(input.matches(regex)){//如果身份证号正确
                System.out.println("恭喜你!输入正确!");
                return;//结束本方法
            }
        }while(!input.matches(regex));//只要不符合正则表达式,就继续输入
    }
}



















