Java正则表达式
1. 正则表达式-匹配字符类
- -[abc]: 匹配a或者b或者c中的任意一个字符;
- -[^abc]: 匹配除a,b,c以外的任意一个字符;
- -[a-z]: 匹配a到z之间的任意一个字母(小写,包含a和z);
- -[A-Z]: 匹配A到Z之间的任意一个字母(大写,包含A和Z);
- -[0-9]: 匹配0-9之间的任意一个数字字符;
- -[a-ce-g]: 匹配a到c,e-g之间的任意一个字符;
- -[a-ce-g0-5]: 匹配a到c,e-g,0-5之间的任意一个字符;
点击查看代码
public static void main(String[] args) {
System.out.println("a".matches("[abc]")); //true
System.out.println("a".matches("[^abc]")); //false
System.out.println("a".matches("[a-z]")); //true
System.out.println("a".matches("[A-Z]")); //false
System.out.println("0".matches("[0-9]")); //true
System.out.println("a".matches("[a-ce-g]"));//true
System.out.println("d".matches("[a-ce-g]"));//false
System.out.println("5".matches("[a-ce-g0-5]"));//true
System.out.println("a1d".matches("a[0-9]d")); //true 以a开头,以d结尾,中间一位数字
}
2. 正则表达式-匹配逻辑运算符
- &&:且
- | :或
3. 正则表达式-预定义字符
- “.” : 匹配任何字符。如果要表示一个字符点,使用/.
- “/d”:任何数字[0-9]的简写;
- “/D”:任何非数字[^0-9]的简写;
- “/s”:空白字符:[ /t/n/x0B/f/r] 的简写
- “/S”:非空白字符:[^/s] 的简写
- “/w”:单词字符:[a-zA-Z_0-9]的简写
- “/W”:非单词字符:[^/w]
点击查看代码
public static void main(String[] args) {
System.out.println("abz".matches("a.z")); //true
System.out.println("acz".matches("a.z")); //true
System.out.println("a".matches("//.")); //true
System.out.println("1".matches("//d")); //false
System.out.println("1".matches("//D")); //true
System.out.println(" ".matches("//s")); //false
System.out.println("a".matches("//S")); //true
System.out.println("a".matches("//w")); //true
System.out.println("1".matches("//w")); //true
System.out.println("@".matches("//w")); //false
System.out.println("@".matches("//W")); //true
}
4. 正则表达式-数量词
- X? : 0次或1次
- X* : 0次到多次
- X+ : 1次或多次
- X{n} : 恰好n次
- X{n,} : 至少n次
- X{n,m}: n到m次(n和m都是包含的)
点击查看代码
public static void main(String[] args) {
System.out.println("a".matches("//w?")); //true
System.out.println("aa".matches("//w*")); //true
System.out.println("aa".matches("//w+")); //true
System.out.println("aa".matches("a{2}")); //true
System.out.println("aaa".matches("a{2}")); //false
System.out.println("a".matches("a{2}")); //false
System.out.println("aaa".matches("a{2,}")); //true
System.out.println("a".matches("a{2,3}")); //false
System.out.println("aa".matches("a{2,3}")); //true
//验证是否是手机号
// 1.第一位为1
// 2.第二位是3,5,8 3).后面9位都是数字
System.out.println("15812340987".matches("1[358]//d{9}"));// true
}
5. 正则表达式-分组括号
以小括号将相同规则进行分组
点击查看代码
public static void main(String[] args) {
String uuid = UUID.randomUUID().toString();
System.out.println(uuid); //0f030d0f-fa5f-44f3-a510-2cbe60b4c67f
String str = "0f030d0f-fa5f-fa5f-44f3-a510-2cbe60b4c67f";
// 4-8位数字或者小写字母,以-结尾,并且出现4次,最后一次12位数字或者小写字母
System.out.println(uuid.matches("([a-z0-9]{4,8}-){4}([a-z0-9]{12})")); //true
System.out.println(str.matches("([a-z0-9]{4,8}-){4}([a-z0-9]{12})")); //false
}
原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/278217.html