字符:'\' 反斜杠 \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]); } }