package com.zking.test;
public class MyDemo {
public static void main(String[] args) {
/**
* 正则表达式: (1)其实就是一种限制规则,可以利用这种规则来限制用户的数据输入增删改查。 (2)正则表达式并不孤单(Java有 网页中也有)
* (3)Java中的正则表达式:①通过String类提供的方法来完成正则表达式的要求 ②利用正则表达式的专属类实现
*
* 正则表达式的规则怎么定义:利用符号以及字母以及数字去定义规则
*
*
* 常用的正则符号: ? 0次或1次 账号 a ? aa + 至少1次 * 任意次 - 连字符 . 除了(\n)的任意字符 | 或者 [abc] 任选一个
* [abc]{3,} 任选1个至少重复3次,趋向于正无穷大 [abc]{3,5} 任选1个至少3次,最多5次 [abc]{6} 任选1个,必须重复6次 \d
* 数字0-9任选1个 [0-9] \w 0-9a-zA-Z_ 任选1个 () 分组 看成一个整体
*
*
* ^ 必须以指定的字符开头
* $ 必须以指定的字符结尾
*
*
*
* 正则表达式的玩法顺序: 1.根据需求定义指定的字符串 2.根据正则表达式的规则符号定义规则(字符串类型 定义)
* 3.通过String类提供的方法进行调用,并其将规则传入该方法内进行判断即可。
*
*/
// 例子:账户 必须纯数字 范围6-12
// String username = "123456";
// if(username.length() >= 6 && username.length()<=12) {
// boolean flag = true;//可以
// for (int i = 0; i < username.length(); i++) {
// char chs = username.charAt(i);
// if(!Character.isDigit(chs)) {
// flag = false;
// }
// }
// if(flag == true) {
// System.out.println("OK");
// }else {
// System.out.println("不OK");
// }
// }else {
// System.out.println("账户有误,必须在6-12之间");
// }
// 正则表达式
// String username = "123456abc";
// //定义规则 通过字符串定义
// String regex = "[0-9]{6,12}";
// //调用String类中提供的方法来匹配规则是否满足要求
// System.out.println(username.matches(regex));
// 【======正则示例======】
String str = "";
String regex = "";
// 1、匹配密码:6位的数字
// str = "1234567";
// regex = "\\d{6}";
// System.out.println(str.matches(regex));
// 2、匹配用户名:由英文字母组成 长度必须在10-20之间
// str = "adminadmin123";
// regex = "[a-zA-Z]{10,20}";
// System.out.println(str.matches(regex));
// 3、由abcdefg以及02468组成 长度在6位以上
// str = "abcabc";
// // regex = "[abcdefg02468]{6,}";
// regex = "[a-g02468]{6,}";
// System.out.println(str.matches(regex));
// 4、匹配abcdefg 至少要选择一个
// str = "asd";
// regex = "[a-g]+";
// System.out.println(str.matches(regex));
// 5、匹配abcdefg 选择一个 或者不选
// str = "a";
// regex = "[a-g]?";
// System.out.println(str.matches(regex));
// 6、匹配出现任意次数的数字
// str = "ajld";
// regex = "\\d*";
// System.out.println(str.matches(regex));
// 7、匹配正整数
// str = "+111111";// +12
// regex = "(\\+)?(\\d|[1-9]\\d*)";
// System.out.println(str.matches(regex));
// 8、匹配负整数
// str = "0";
// regex = "\\-([1-9]|[1-9]\\d*)";
// System.out.println(str.matches(regex));
// 9、匹配正整数和0
// str = "+0";
// regex = "((\\+)?(\\d|[1-9]\\d*))|0";
// System.out.println(str.matches(regex));
// 10、匹配电子邮箱
// str = "1561868458@qq.cn";
// regex = "\\w{6,12}@\\w{2,5}\\.(com|cn)";
// System.out.println(str.matches(regex));
// 11、匹配域名
// str = "www.baidu.com";
// regex ="(http://|https://|ftp://)?www\\.[0-9a-zA-Z]{3,6}\\.(com|cn|net|org)";
// System.out.println(str.matches(regex));
// 12、匹配月份 1-12
// str ="12";
// regex = "[1-9]|1[0-2]";
// System.out.println(str.matches(regex));
// 13、匹配日期 1-31
// 1-9 10-29 30 31
// str = "22";
// regex = "[1-9]|[12]\\d|3[01]";
// System.out.println(str.matches(regex));
// 14、匹配年龄 1-150岁之间
// str = "120";
// regex = "[1-9]|[1-9]\\d|1[0-4]\\d|150";
// System.out.println(str.matches(regex));
// 15、匹配手机号码
// (1)必须11位数
// (2)必须是1开头 第二个数字:3 4 5 6 7 8 9
// str = "15084961293";
// regex = "1[3-9]\\d{9}";
// System.out.println(str.matches(regex));
// 16、匹配座机号码
// 区号---座机号---分机号
// 0738-4565773-01
str = "4565773";
regex = "(0\\d{2,3}\\-)?\\d{7,8}(\\-\\d{1,2})?";
System.out.println(str.matches(regex));
}
}