1、正则表示
- 正则表达式可以用一些规定的字符来指定规则,并用来校验数据格式的合法性
正则表达式初体验
-
需求:假如现在要求效验一个QQ号是否正确,6位及20位之内,必须全部是数字
public class RegexDemo1 { public static void main( String[] args ) { System.out.println(checkQQ("2929054638")); System.out.println(checkQQ("12345")); System.out.println(checkQQ("123456789009876543210")); System.out.println(checkQQ("qq2929054638")); } public static boolean checkQQ(String qq){ return qq!=null&&qq.matches("\\d{6,20}"); } }
-
运行结果
2、正则表达式的匹配规则
-
字符类(默认匹配一个字符)
[abc] //只能是a,b,c [^abc] //除了a,b,c外的任何字符 [a-zA-Z] //a到z A到Z [a-d[m-p]] //a到d,或者m到p [a-z&&[def]] //d,e,f(交集) [a-z&&[^bc]] //a到z,除了b和c [a-z&&[^m-p]] //a到z,除了m到p
-
预定义的字符类(默认匹配一个字符)
. //任何字符 \d //一个数字[0-9] \D //非数字[^0-9] \s //一个空白字符[\t\n\x08\f\r] \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次
3、正则表达式在方法中的应用
正则表达式在字符串方法中的使用
名称 | 说明 |
---|---|
public String replaceAll(String regex,String newStr) | 按照正则表达式匹配的内容进行替换 |
public String[] split(String regex) | 按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组 |
Demo
public class RegexDemo2 {
public static void main(String[] args){
String names="小龙女abcd蓉儿2929054638qwer杨过";
String[] arrs = names.split("\\w+");
for (String arr : arrs) {
System.out.println(arr);
}
System.out.println(names.replaceAll("\\w+", " "));
}
}
运行结果
文章评论