Java对正则表达式的支持(手机、身份证校验)

时间:2024-10-11 22:45:21

目录

        • 1【数量:单个】字符匹配
        • 2【数量:单个】字符集(可以从里面任选一个字符)。
        • 3【数量:单个】简化字符集;
        • 4【边界匹配】
        • 5【数量表示】默认情况下只有添加上了数量单位才可以匹配多位字符;
        • 6【逻辑表达式】可以连接多个正则
        • 7【理解字符 \ 的含义】
          • \ 在 Java 中的含义
          • \ 在正则表达式中的含义
          • \ 出现在Java的正则表达式中处理
        • 举例1:editor@
        • 举例2:ab\ab
        • Java对正则的支持类-常用方法
          • - find() 方法
          • - matches() 方法
          • - start() 方法
          • - end() 方法
          • - group() 方法
        • 举例3:校验手机号
        • 举例4:校验身份证号码

1【数量:单个】字符匹配

.:表示任意字符,即由任意字符组成;

\\: 匹配\; (重要

\n:匹配换行;

\t:匹配制表符;

2【数量:单个】字符集(可以从里面任选一个字符)。

[abc]:表示可能是字母 a、b、c中的任意一个;

[^abc]:表示不是由字母 a、b、C中的任意一个;

[a-zA-Z]:表示由一个任意字母所组成,不区分大小写。同理加上 ^表示取反;

[0-9]:表示由一位数字所组成。同理加上 ^表示取反

3【数量:单个】简化字符集;

.:表示任意的一个字符;

\d:等价于[0-9]范围;

\D:等价于[^0-9]范围;

\s:匹配任意的一位空格,可能是空格、换行、制表符;

\S:即对\s取反匹配任意的非空格数据;

\w:匹配字母、 数字、下划线, 等价于[a-zA-Z_0-9]

\W:匹配非字母、数字、下划线,等价于[^a-zA-Z_0-9];

4【边界匹配】

^:匹配边界开始;

$:匹配边界结束;

5【数量表示】默认情况下只有添加上了数量单位才可以匹配多位字符;

表达式?:该正则可以出现 0 次或 1 次;

表达式*:该正则可以出现 0 次、1 次或多次;

表达式+:该正则可以出现 1 次或多次;

表达式{n}:表达式的长度正好为 n 次;

表达式{n,}:表达式的长度为 n 次以上

表达式{n,m}:表达式的长度在 n~m 次;

6【逻辑表达式】可以连接多个正则

表达式 X 表达式 Y:X 表达式之后紧跟上 Y 表达式;

表达式 X | 表达式 Y :有一个表达式满足即可;

(表达式):为表达式设置一个整体描述, 可以为整体描述设置数量单位。

7【理解字符 \ 的含义】
\ 在 Java 中的含义

上左下右斜杠 \ 表示转义字符。转义字符的特点使其后面的字符消失意义。比如:英文字符右下引号 " 表示字符串的结束。如果我们想把下引号输出打印,只是作为一个英文字符,消失本来的意义,我们可是使用转义字符,如下:

("\"");

输出结果:
"

同理,如果我们想输出打印反斜杠 \ 必须再写一个反斜杠进行转义,如下:
System.