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

\的定義

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

轉義就是指轉換該字符的本來意義,從而變成另外的意義。正則表達式

\做爲Java的轉義字符

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

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

單引號:char c = 'a'; 表示字符類型的數據時須要使用單引號將字符左右括起來。因此要表示字符'則須要使用'3d

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

反斜槓:String regex = "你好\n\t棒"; 在java代碼中\表示轉義字符,因此若是要表示字面意思的\,則須要使用\cdn

因此用反斜槓加上自己字符來進行表示。blog

\在正則表達式中

\表示將下一字符標記爲特殊字符。如\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); } } 複製代碼
相關文章
相關標籤/搜索