字符:'\' 反斜杠
\t 代表制表符
\n代表换行
\r回车换行
字符类:[abc] a或者b或者c
[^abc] ^表示否定
[a-zA-z] a~z、A~Z的任意字符
[0-9] 任意数字
[0-9a-zA-Z_]包含下划线0~9,a~z,A~Z,相当于\W
预定义字符类 : .任意字符
\d 数字[0-9]
\w包含下划线0~9,a~z,A~Z,相当于
边界匹配 : $ 代表的是行的结尾
^ 代表的是行开始位置
\b单词的边界
数量词 : x? x出现一次或者一次都没有
x* x出现一次或出现多次(任意次数)
x+ 至少一次
x{n} 出现的次数必须是N次
x{n,m} 至少出现n次,最多m次
x{n,} 至少出现n次 多了不限
package cn.lijun.demo1;
public class RegexDemo {
public static void main(String[] args) {
//checkPhone();
checkQQ();
}
//验证手机号码是否正确
public static void checkPhone(){
String phoneNum="13721827814";
boolean b=phoneNum.matches("1[0-9][\\d]{9}");
System.out.println(b);
}
public static void checkQQ(){
String qq="2010634510";
boolean b=qq.matches("[1-9][\\d]{4,9}");
System.out.println(b);
}
//邮箱
public static void checkMail(){
String email="2010634510@qq.com";
boolean b=email.matches("[\\w]+@[0-9a-z]+(\\.[a-z]+)+");
System.out.println(b);
}
//分离空格
public static void split_2(){
String str="19 89 12";
String[] strArr=str.split(" +");
System.out.println("数组的长度是:"+str.length());
for(int i=0;i<strArr.length;i++){
System.out.println(strArr[i]);
}
}
public static void split_1(){
String str="2019-03-19-10-51";
//按照-对字符串进行切割
String[] strArr=str.split("-");
System.out.println("数组的长度是:"+strArr.length);
for(int i=0;i<strArr.length;i++){
System.out.println(strArr[i]);
}
}