Java正则总结

2021-04-23 21:27

阅读:531

标签:and   split   focus   express   括号   空白   phone   tde   pre   

正则表达式-字符类
1. [abc]:代表a或者b,或者c字符中的一个。
2. [^abc]:代表除a,b,c以外的任何字符。
3. [a-z]:代表a-z的所有小写字符中的一个。
4. [A-Z]:代表A-Z的所有大写字符中的一个。
5. [0-9]:代表0-9之间的某一个数字字符。
6. [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。
7. [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。
/**
 * 字符类
 */
public class RegTestDemo01 {
    public static void main(String[] args) {
        String str = "oad";
        //1.验证str是否以h开头,以d结尾,中间是a,e,i,o,u中某个字符
        System.out.println(str.matches("h[aeiou]d"));
        //2.验证str是否以h开头,以d结尾,中间不是a,e,i,o,u中的某个字符
        System.out.println(str.matches("h[^aeiou]d"));
        //3.验证str是否a-z的任何一个小写字符开头,后跟ad
        System.out.println(str.matches("[a-z]ad"));
        //4.验证str是否以a-d或者m-p之间某个字符开头,后跟ad
        System.out.println(str.matches("[a-dm-p]ad"));
    }
}  
正则表达式-预定义字符
1. "." : 匹配任何字符。
2. "\d":任何数字[0-9]的简写;
3. "\D":任何非数字[^0-9]的简写;
4. "\s": 空白字符:[ \t\n\x0B\f\r] 的简写 
5. "\S": 非空白字符:[^\s] 的简写
6. "\w":单词字符:[a-zA-Z_0-9]的简写
7. "\W":非单词字符:[^\w]
/**
 * 预定义字符
 */
public class RegTestDemo03 {
    public static void main(String[] args) {
        String str = "had.";
        //1.验证str是否3位数字
        System.out.println(str.matches("\\d\\d\\d"));
        //2.验证手机号:1开头,第二位:3/5/8,剩下9位都是0-9的数字
        String phone = "18600363521";
        System.out.println(phone.matches("1[358]\\d\\d\\d\\d\\d\\d\\d\\d\\d"));
        //3.验证字符串是否以h开头,以d结尾,中间是任何一个字符
        System.out.println(str.matches("h.d"));
        //4.验证str是否是:"had."
        System.out.println(str.matches("had\\."));//\\. 就代表内容"."
    }
}  
正则表达式-数量词
1. X? : 0次或1次
2. X* : 0次到多次
3. X+ : 1次或多次
4. X{n} : 恰好n次 
5. X{n,} : 至少n次 
6. X{n,m}: n到m次(n和m都是包含的)
/**
 * 数量词 
 */
public class RegTestDemo04 {
    public static void main(String[] args) {
        String str = "1358654234567";
        //1.验证str是否是三位数字
        System.out.println(str.matches("\\d{3}"));
        //2.验证str是否是多位数字
        System.out.println(str.matches("\\d{2,}"));
        //3.验证str是否是手机号:1开头,第二位:3/5/8,剩下9位都是0-9的数字
        String phone = "18600363521";
        System.out.println(phone.matches("1[358]\\d{9}"));
        //4.验证小数:必须出现小数点,但是只能出现1次
        String num = "4.13";
        System.out.println(num.matches("\\d+\\.\\d+"));
        //5.验证小数:小数点可以不出现,也可以出现1次
        System.out.println(num.matches("\\d+\\.?\\d+"));
        //6.验证小数:要求匹配:+3、+3.、+3.14、+3.14、-3
        System.out.println(num.matches("[+-]?\\d+\\.?\\d*"));
        //7.验证qq号码:1).5--15位;2).全部是数字;3).第一位不是0
        String qq = "359614724";
        System.out.println(qq.matches("[1-9]\\d{4,14}"));
    }
}  
正则表达式-分组括号( )
() 分组符号
/**
 * 分组括号
 */
public class RegTestDemo05 {
    public static void main(String[] args) {
        String str = "DG8FV-B9TKY-FRT9J-99899-XPQ4G";
        //验证这个序列号:分为5组,每组之间使用-隔开,每组由5位A-Z或者0-9的字符组成
        System.out.println(str.matches("([A-Z0-9]{5}-){4}[A-Z0-9]{5}"));
    }
} 
String的split方法replaceAll方法
public String[] split(String 切割符);

/**
 * String的split方法
 * RegulationExpression regex
 */
public class RegTestDemo06 {
    public static void main(String[] args) {
        String str = "18--4+++++567+++99------56";
        //切割字符串
        String[] split = str.split("[+-]+");
        System.out.println(Arrays.toString(split));
    }
}


/**
 * String的replaceAll方法
 * RegulationExpression regex
 */
public class RegTestDemo07 {
    public static void main(String[] args) {
        String str = "jfdk432jfdk2jk24354j47jk5l31324";
        //将字符串中的数字替换为*,如果相邻都是数字,只要一个*
        String newStr = str.replaceAll("\\d+", "*");
        System.out.println(newStr);
    }
}

 

Java正则总结

标签:and   split   focus   express   括号   空白   phone   tde   pre   

原文地址:https://www.cnblogs.com/xiaozhang666/p/13268634.html


评论


亲,登录后才可以留言!