正则表达式
使用特定的符号来描述该字符串的一种方法。是一个字符串模板,本身也是一个字符串
正则表达式常用的代码
. 可以匹配换行符以外的任意字符
\w 可以匹配任意的数字或者字母
\d 可以匹配任意的数字
\s 一颗匹配任意的空格
^ 代表字符串的开始
$ 代表字符串的结束
^\w{5}$ 代表匹配的字符串要以数字或者字母开始,或者以数字或者字母结尾,必须匹配五个
^\w{3}\d{2}$ 数字或者字母开始三位、以数字结尾2位
^\s{0,3}\d{2}$ 以0到3个空格开始,2个数字结尾
正则表达式匹配次数
*表示可以匹配0次或者多次 {0,}
+可以匹配一次或者多次 {1,}
?可以匹配0次或者1次 {0,1}
{n}只能匹配n次
{n,}至少匹配n次
{n,m}至少匹配n次,最多m次
[]代表可以从中间匹配任意的一个内容,也可以匹配多个
分组
某一段表达式需要重复多次,这个就需要分组,()包含起来的表达式,分成一个组。这个组可以统一量词。
电话号码:028 - 8位 0817 -7位
^(\d{3}-\d{8})|(\d{4}-\d{7})$
转义的内容
www.baidu.com
^(www\.)[a-z0-9]{1,}.(com|cn|gz)$
"\."转义成普通字符 实际编译"\"需要转义成"\\"
public static void main(String[] args) {
String password = "123678";
String regex ="^\\d{6}$";
String regex2 ="^[0-9]{6}$";
System.out.println(password.matches(regex2));
String name = "3";
System.out.println(name.matches("^[0-9a-zA-Z_]+$"));
String name2 = "ui测";
System.out.println(name2.matches("^[a-z\u4e00-\u9fa5]{4,}$"));
String name3 = "www.baidu.com.cn";
System.out.println(name3.matches("^(www\\.)[a-z0-9]+\\.(com|cn|gz|org|top)$"));
String name4 = "15390012345";
System.out.println(name4.matches("^(13[0-9]|15[0-35-9]|18[0-9])\\d{8}$"));
String name5 = "abc yuyu kio iiiiiii";
String[] array = name5.split("\\s+");
for (String string : array) {
System.out.println(string);
}
String name6 = "xiaowang-x556iaozhang*xiaofe777ifei-xia444oliu%";
name6 = name6.replaceAll("\\d+", "!!");
System.out.println(name6);
}