關於Java正則和轉義中\\和\\\\的理解

\的定義

一個轉義字符的目的是開始一個字符序列,使得轉義字符開頭的該字符序列具有不同於該字符序列單獨出現時的語義。

轉義就是指轉換該字符的原本意義,從而變成另外的意義。

\作爲Java的轉義字符

1.在java字符常量中,反斜槓()是一個特殊的字符,被稱爲轉義字符,它的作用是用來轉義後面一個字符。轉義後的字符通常用於表示一個不可見的字符或具有特殊含義的字符,例如換行(n)、回車符(r)、製表符(t)。

2.在java中以下字符都有特殊意義,無法直接表示

單引號:char c = 'a'; 表示字符類型的數據時需要使用單引號將字符左右括起來。所以要表示字符'則需要使用'

雙引號:String str = "abc"; 表示字符串類型的數據時需要使用雙引號將字符串左右括起來。要表示字符串"則需要"

反斜槓:String regex = "你好\n\t棒"; 在java代碼中表示轉義字符,所以如果要表示字面意思的,則需要使用\

所以用反斜槓加上本身字符來進行表示。

\在正則表達式中

表示將下一字符標記爲特殊字符。如d表示數字字符匹配,等效於 [0-9]。w表示匹配任何字類字符,包括下劃線。與"[A-Za-z0-9_]"等效。

在 Java 中,\ 表示:我要插入一個正則表達式的反斜線,所以其後的字符具有特殊的意義。

\中的第一個表示java的轉義字符由編譯器解析,第二個是正則表達式由正則表達式引擎解析。

Java正則表達式中匹配一個普通的反斜槓是\\

注意觀察下圖中的靜態代碼中的變量定義和運行中的內存變量之間的區別。

regex

代碼

package com.lingyejun.authenticator;

import java.util.regex.Pattern;

public class RegexTest {

    public static void main(String[] args) {

        // 正則表達式中\\\\匹配一個\
        boolean flg = Pattern.matches("\\\\","\\");
        System.out.println(flg);

        char a = 'a';
        String b = "abc";
        String c = "你好\n\t棒";
        System.out.println(c);
        char d = '\'';
        String e = "\"";
        System.out.println(d);
        System.out.println(e);
        String f ="\\";
        System.out.println(f);
        String j = "\\\\";
        System.out.println(f + j);
        String h = "{\"name\":\"翎野君\"}";
        System.out.println(h);
        String g = "{\\\"age\\\":\\\"99\\\"}";
        System.out.println(g);
        String k = g.replaceAll("\\\\","");
        System.out.println(k);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章