目录
1.正则表达式
正则表达式是由一些具有特殊含义的字符组成的字符串,多用于查找、替换符合规则的字符串。在String类中的matches()方法中来对字符串设置判断规则,返回的结果是true or false;
主要的判定标准,代码如下:
public static void main(String[] args) {
/*
正则 表达式
规则
是一种字符串模式匹配语言
指定规则: 手机号规则 \\d
注册账号
手机号 152223423423 11位 数字 以1开头 --- 格式
邮箱 wrwuert7254632@re23.com
*/
/*
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
X|Y X 或 Y
*/
//如制定一个手机号规则 首位必须为1第二位必须是3,5,7,8中的任意一位手机号位数必须是11位
String s1 = "13571121819";
String s2 = "14571121819";
System.out.println(s1.matches("1[3578]\\d{9}")); //true
System.out.println(s2.matches("1[3578]\\d{9}")); //false
//注:容易出错的问题[]中不能有“,”号,不要把“\” 打成“/”
//qq 数字 6--12 第一位没有0
boolean qq1 = "012345".matches("[1-9]\\d{5,11}");
boolean qq2 = "112345".matches("[1-9]\\d{5,11}");
System.out.println(qq1); //false
System.out.println(qq2); //true
//X?,X*,X+ ...的用法
String s = "13566268888";
//boolean res = s.matches("\\d?");//一次或一次也没有
//boolean res = s.matches("\\d*");//0次或一次也没有
//boolean res = s.matches("\\d+");//一次或多次
//boolean res = s.matches("\\d{n}");//恰好 n 次
//boolean res = s.matches("\\d{1n,}");//至少 n 次
//boolean res = s.matches("\\d{n,m}");//至少 n 次,但是不超过 m
//正则表达式的一些使用方式
//boolean res = "fshdfT^&&%&".matches("\\D+");
//boolean res = "3 ".matches("\\d\\s+");
//boolean res = "daa".matches("[a-z]+");
//boolean res = "ASAS".matches("[A-Z]+");
//boolean res = "ASsdeaAS".matches("[A-z]+");
//boolean res = "ASsde232aAS".matches("[A-z,0-9]+");
//boolean res = "ASsde232_a_AS".matches("\\w+");
//System.out.println(res);
}
2.案例
//手机号格式规则
String s = "13566268888";
boolean res = s.matches("1[356789]\\d{9}");
System.out.println(res);
//qq 数字 6--12 第一位没有0
boolean qq = "012345".matches("[1-9]\\d{5,11}");
System.out.println(qq);
制定邮箱规则
//制订邮箱的规范
boolean res1="dfgd3AA73@163qq.com.com".matches("\\w{6,9}@\\w{2,5}\\.(com|com.cn)");
boolean res2="dfgd3AA73@163qq.com.cn".matches("\\w{6,9}@\\w{2,5}\\.(com|com.cn)");
System.out.println(res1); //false
System.out.println(res2); //true
//注.的使用时要用\\.对.进行转义 不然会出现误判因为在正则表达式规则里直接使用.代表的意思是任意字符
注:.的使用时要用\\.对.进行转义不然会出现误判因为在正则表达式规则里直接使用.代表的意思是任意字符
最后,觉得有用的话,可以点赞、收藏,加关注哟,要不下次就找不见了哟!