Java正則表達式使用注意事項

我們寫代碼時經常遇到要對字符串進行校驗、提取、替換等操作,利用正則表達式可以很方便地完成這些處理。Java原生支持正則表達式,但使用時有些地方需要注意。

JDK的正則表達式涉及2個類:Pattern和Matcher。
Pattern,表示一個正則表達式對象。
Matcher,通過Pattern對象的matcher方法生成,參數是我們的原始字符串。表示Pattern對象對這個字符串進行正則相關操作的入口對象。後面的正則操作都要利用這個Matcher對象。

注意事項:
1、Java字符串雙斜槓\才能表示轉義,可以理解成第1個斜槓轉義第2個斜槓。所以對.和$這些特殊字符轉義,Java裏面要表示爲\.和\$。這個問題IDE會給我們提示。

2、Java使用正則表達式的一般代碼

    String str = "請繳費10.01元";
    Pattern p = Pattern.compile("\.\d+");
    Matcher matcher = p.matcher(str);
    if(matcher.matches()){
        //找到第1個匹配的起始座標
        int start = matcher.start();
        //找到第1個匹配的結尾的下一個元素座標
        int end = matcher.end();
        //返回第1個匹配的字符串
        String mstr = matcher.group();
    }

前面說過,matcher是入口對象。要先執行查找操作,才能執行結果操作
我們把Matcher對象方法分個類:
查找操作:find()、matches()等
結果操作:start()、end()、group()等

3、使用Matcher的replaceFirst和replaceAll操作,replacement字符串要注意正則表達式特殊字符$

    // 運營報錯
    String newStr = matcher.replaceAll("$" + origin + "$");
    // 正確
    String newStr = matcher.replaceAll("\\$" + origin + "\\$");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章