目录
2.正则表达式一个中括号就是一个值,里面放几个就是进行匹配的
1.不用new方式定义字符==相等但是是在常量池地址相同
2.正则表达式一个中括号就是一个值,里面放几个就是进行匹配的
3.{}大括号代表前面中括号的次数,就是有几个
4.使用正则表达式的好处
不用正则表达式判断手机源码:
public class Regex1 {
public static void main(String[] args) {
/**
* 手机号格式:<br>
* 159xxx 13xxx 18xxx 17xxx<br>
* 1、必须为11位的纯数字<br>
* 2、第1个字符必须是1<br>
* 3、第2个字符必须是3、5、7、8
*/
Scanner input = new Scanner(System.in);
System.out.print("请输入一个手机号码:");
String phone = input.next();
// 1.计算字符串的长度
int len = phone.length();
if (len == 11) {// 满足长度11位
// 2、将字符串转化成字符数组
char[] chs = phone.toCharArray();
// 3、判断第1个字符是否是1
if (chs[0] == '1') {// 满足第1个字符是1
// 4、判断第2个字符是否是3/5/7/8
if (chs[1] == '3' || chs[1] == '5' || chs[1] == '7' || chs[1] == '8') {
// 5、判断手机号码后9位是否是数字
boolean flag = true;// 手机号码11位都是数字
for (int i = 0; i < chs.length; i++) {
if (!('0' <= chs[i] && chs[i] <= '9')) {// 当前不是数字
flag = false;
break;
}
}
if (flag) {
System.out.println("亲,手机号码格式正确!!!");
} else {
System.out.println("亲,手机号码必须全部为数字");
}
} else {
System.out.println("亲,你手机号码有误(第2个字母不正确)");
}
} else {
System.out.println("亲,您输入的手机号码有误(第1个字符必须为1)");
}
} else {
System.out.println("亲,您输入的手机号码长度有误!");
}
}
}
可以看出上面逻辑较为复杂,但是每个错误很清晰,但是正则也就只能判断正误.
5.{}大括号可以传两个参数代表上下线也就是5-12位
6.* + ?在正则表达式的作用
7.可以使用或进行选择
优化语句
8.正则表达式有预定义的字符
9.正则表达式的定义及使用
10.正则表达式遇到点的切割
11.正则表达式遇到空格的切割
12.正则表达式切割时稳定形式
说明不论什么符号切割加上\\不会出现一些特殊情况,也是一种经验吧.