本文连接https://blog.csdn.net/MDWJJ/article/details/105906666
正则表达式基本规则
String regex = “[a-z]”; //a到z任意一个字符
“[a-z]” a到z任意一个字符
“[a-z]+” 一个或多个a到z
“[^abc]” 除了a、b、c的任意字符
“[a-zA-Z0-9]” a-zA-Z0-9任意一字符
“[a-z&&[^abc]]” a-z除了a、b、c任意一字符
[a-d[m-p]] a-d或m-p:[a-dm-p]
String regex = “\\d”; //[0-9]
“\\d” [0-9]
“\\D” [^0-9]
“\\s” [ \t\n\x0B\f\r]空白字符
“\\S” [^ \t\n\x0B\f\r]空白字符
“\\w” [a-zA-Z0-9]
“\\W” [^a-zA-Z0-9]
“.” 任意一个字符
X? 0或一个X
X* 0或任意个X
X+ 1到任意个X
X{n} n个X
X{n,} n到任意个X
X{n,m} n到m个X
“()” 表示分组
“^” 开头
“$” 结尾 //”^aaa$”表示由aaa开头和结尾 “aaa1””qaaa”都不满足该正则
“\\.” 表示一个“.”
.*? 匹配任意数量的重复
a.*b 匹配最长的以a开始,以b结束的字符串
exp1(?=exp2) 前瞻:查找exp2前面的exp1
(?<=exp2)exp1 后顾:查找exp2后面的exp1
exp1(?!exp2) 负前瞻:查找后面不是exp2的exp1
(?<!exp2)exp1 负后顾:查找前面不是exp2的exp1
正则表达式常用方法
String str;
1.boolean matches(String regex)方法:
boolean match = str.matches(regex);
2.String[] split(String regex)方法:
String[] arr = str.split("[0-9]");
//返回按正则分割的数组,arr长度为满足正则表达式(数字)个数加1
// String[] arr = “12a12a”.split(“[a-z]”); 返回{12, 12, }(长度3,后一个为null)
3.String replaceAll(String regex, String str)
String str1 =” 12a12a”.replaceAll(“[a-z]”, “#”);
//返回 ”12#12#”
举例
用正则表达式匹配一个带有区号和空格的电话号码