梦入琼楼寒有月,行过石树冻无烟

JAVA 正则表达式实例

1.手机号规则

1
2
3
4
5
6
7
8
9
10
String str = "18123739515";
// ^为正则开始,¥为表示正则结束
String reg = "^1[3|4|5|8][1-9]\\d{8}$";

// 实例化正则表达式
patter patter = Pattern.compile(reg);
Matcher matcher = pattern.matcher(str);

// 判断是否符合正则表达式要求
boolean bo = matcher.matches();

1.1 1[3|4|5|8]

​ 首先我们的手机号一般以1×× 开头,那正则表达式应为 “1[3|4|5|8]” [1|3]的意思就是1 or 3.

1.2 [0-9]

​ 然后我们手机号除去开头三位数为**8位,构造正则表达式为 [0-9]**,也就是0~8.

1.3 [\\d]

​ 之后我们要匹配任意数字自然需要使用\\d来表达匹配任意数字.

1.4 {8}

​ 然后我们还需要精准匹配前三位的开头数字需要使用 **{8}**,也就是精准匹配8前面的数字。

2.名称规则

1
2
3
4
5
6
7
8
9
String str = "a__123213_3asdas!#";
String reg = "[a-z_!@#][A-Z_!@#][A-Za-z1-9_!@#]"

// 实例化
Pattern pattern = Patterncompile(reg);
Matcher matcher = pattern.matcher(str);

// 检测是否正确
boolean bo = matcher.matches();

2.1 [a-z_!@#]

​ 首先我们可以让名称A~Z如**[a-z_!@#]**,让用户可以输入a~z和一些特殊符号_!@#。

2.2 [A-Z_!@#]

​ 当然你也可以使用大写的定义正则为**[A-Z_!@#]**,让用户可以输入A~Z的字母和特殊符号_!@#。

2.3 [A-Za-z1-9_!@#]

​ 如果还想让用户可以输入数字可以定义为**[A-Za-z1-9_!@#]**,使用户可以输出A~Z、a~z、1~9和特殊字符!@#等。

2.4 +

​ 而**+是匹配0或1个在他之钱的字符,放在最后用于匹配他之前的正则式子**

⬅️ Go back