正则表达式知识点:点这里跳转
使用正则表达式完成如下需求
需求:
- 编写正则表达式验证用户输入的手机号码是否满足要求
- 编写正则表达式验证用户输入的邮箱号是否满足要求
- 编写正则表达式验证用户输入的电话号码是否满足要求
- 举例:
- 验证手机号码 13112345678 13712345667 13945679028 139654790273
- 验证座机电话号码 020–2324242 02122422 027-42424 0712-3242434
- 验证邮箱号码 3232323@qq.com zhangsan@itcast.cnn dlei0009@l63.com dlei0009@pci.com.cn
核心思想:拿着一个正确的数据,从左到右依次去写
public class FTest {
public static void main(String[] args) {
/*
* 使用正则表达式完成如下需求
* 需求:
* 1.编写正则表达式验证用户输入的手机号码是否满足要求
* 2.编写正则表达式验证用户输入的邮箱号是否满足要求
* 3.编写正则表达式验证用户输入的电话号码是否满足要求
* 举例:
* 验证手机号码 13112345678 13712345667 13945679028 139654790273
* 验证座机电话号码 020--2324242 02122422 027-42424 0712-3242434
* 验证邮箱号码 3232323@qq.com zhangsan@itcast.cnn dlei0009@l63.com dlei0009@pci.com.cn
* */
//核心思想:拿着一个正确的数据,从左到右依次去写
//1.手机号码
//13112345678 共11位
//分成三部分:
//第一部分:1 表示手机号码只能以1开头
//第手机号码第二位只能是3-9之间的数字
//第三部分:\\d{9} 表二部分:[3-9] 表示示任意数字可以出现9次,也只能出现9次
String regex1 = "1[3-9]\\d{9}";
System.out.println("13112345678".matches(regex1)); //true
System.out.println("13712345667".matches(regex1)); //true
System.out.println("13945679028".matches(regex1)); //true
System.out.println("139654790273".matches(regex1)); //false
System.out.println("----------------------------");
//2.座机号码
//020--2324242 02122422 027-42424 0712-3242434
//思路:
//在书写座机号正则的时候需要把正确的数据分为三部分
//一:区号 0\\d{2,3}
// 0:表示区号一定是以0开头的
// \\d{2,3}:表示区号从第二位开始可以是任意的数字,可以出现2到3次
//二:- ?表示次数,0次或1次
//三:号码 号码的第一位也不能以0开头,从第二位开始可以是任意的数字,号码的总长度为:5-10位
String regex2 = "0\\d{2,3}-?[1-9]\\d{4,9}";
System.out.println("020-2324242".matches(regex2)); //true
System.out.println("02122422".matches(regex2)); //true
System.out.println("027-42424".matches(regex2)); //true
System.out.println("0712-3242434".matches(regex2)); //true
System.out.println("----------------------------");
//3.邮箱号码
//3232323@qq.com zhangsan@itcast.cnn dlei0009@l63.com dlei0009@pci.com.cn
//思路
//在书写邮箱号码正则的时候需要把正确的数据分为三部分
//第一部分:@的左边 \\w+
// 任意的字母数字下划线,至少出现一次就可以了
//第二部分:@ 只能出现一次
//第三部分:
// 3.1 .的左边 [\\w&&[^_]]{2,6}
// 任意的字母加数字,总共出现2-6次(此时不能出现下划线)
// 3.2 .要写成\\.才行
// 3.3 大写字母,小写字母都可以,只能出现2-3次 [a-zA-Z]{2,3}
// 我们可以把3.2和3.3看成一组,这一组可以出现1次或者两次
String regex3 = "\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}";
System.out.println("3232323@qq.com".matches(regex3)); //true
System.out.println("zhangsan@itcast.cnn".matches(regex3)); //true
System.out.println("dlei0009@l63.com".matches(regex3)); //true
System.out.println("dlei0009@pci.com.cn".matches(regex3)); //true
String a = "";
}
}