1. 程式人生 > >正則表示式的常見功能(作用)

正則表示式的常見功能(作用)


1. 字串的匹配功能

2. 字串的切割功能

3. 字串的替換功能

4. 字串的獲取功能

匹配功能 String的matches方法

    public static void main(String[] args) {
        // 匹配手機號碼是否正確
        String phone = "15228119181";
        String regex = "1[345789]\\d{9}";
        boolean matches = phone.matches(regex);
    }

切割功能 String的split(String regex)根據給定的正則拆分字串

    public static void main(String[] args) {
        // 分割手機號的每一位數字
        String phone = "15228119181";
        String regex = "";
        String[] split = phone.split(regex);
        System.out.println(Arrays.toString(split));
    }
    結果: [1, 5, 2, 2, 8, 1, 1, 9, 1, 8, 1]


    public static void main(String[] args) {
        // 切割獲取每一個單詞(去除空格)
        String phone = "are      you  ok !";
        String regex = "\\p{Space}+";
        String[] split = phone.split(regex);
        System.out.println(Arrays.toString(split));
    }
    結果: [are, you, ok, !]


    這裡有一個對split方法理解不正確的用法,要注意:
    public static void main(String[] args) {
        // 切割獲取每一個單詞(去除.)
        String phone = "are.you.ok !";
        //split方法傳入的是正則,所以傳入引數應該為 \\. 用來轉義.符號
        String regex = ".";
        String[] split = phone.split(regex);
        //這樣切割出來什麼都沒有
        System.out.println(Arrays.toString(split));
    }
    結果: []

替換功能  String類的replaceAll(String regex,String replacement)

    將.替換成空格
    public static void main(String[] args) {
        String english = "are.you.ok !";
        String regex = "\\.";
        String s = english.replaceAll(regex, " ");
        System.out.println(s);
    }
    結果: are yuo ok !

    將中間的0替換成*
    public static void main(String[] args) {
        String phone = "15800001111";
        String s = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
        System.out.println(s);
    }
    結果: 158****1111

獲取功能 

    public static void main(String[] args) {
        // 獲取3個字母組成的單詞
        // 將正則封裝成物件
        Pattern p = Pattern.compile("\\b[a-z]{3}\\b");
        // 指定要匹配的字串
        Matcher m = p.matcher("da jia hao ming tian bu fang jia!");
        // 獲取匹配的資料
        while (m.find()) {
            System.out.println(m.group());
        }
    }

 

來源:https://blog.csdn.net/chuxin_mm/article/details/85157570