淺談關于Java正則和轉(zhuǎn)義中\(zhòng)\和\\\\的理解
\的定義
一個轉(zhuǎn)義字符的目的是開始一個字符序列,使得轉(zhuǎn)義字符開頭的該字符序列具有不同于該字符序列單獨出現(xiàn)時的語義。
轉(zhuǎn)義就是指轉(zhuǎn)換該字符的原本意義,從而變成另外的意義。
\作為Java的轉(zhuǎn)義字符
1.在java字符常量中,反斜杠()是一個特殊的字符,被稱為轉(zhuǎn)義字符,它的作用是用來轉(zhuǎn)義后面一個字符。轉(zhuǎn)義后的字符通常用于表示一個不可見的字符或具有特殊含義的字符,例如換行(n)、回車符(r)、制表符(t)。
2.在java中以下字符都有特殊意義,無法直接表示
單引號:char c = 'a';
表示字符類型的數(shù)據(jù)時需要使用單引號將字符左右括起來。所以要表示字符'則需要使用'
雙引號:String str = "abc";
表示字符串類型的數(shù)據(jù)時需要使用雙引號將字符串左右括起來。要表示字符串"則需要"
反斜杠:String regex = "你好\n\t棒";
在java代碼中表示轉(zhuǎn)義字符,所以如果要表示字面意思的,則需要使用\
所以用反斜杠加上本身字符來進行表示。
\在正則表達式中
表示將下一字符標記為特殊字符。如d表示數(shù)字字符匹配,等效于 [0-9]。w表示匹配任何字類字符,包括下劃線。與"[A-Za-z0-9_]"等效。
在 Java 中,\ 表示:我要插入一個正則表達式的反斜線,所以其后的字符具有特殊的意義。
\中的第一個表示java的轉(zhuǎn)義字符由編譯器解析,第二個是正則表達式由正則表達式引擎解析。
Java正則表達式中匹配一個普通的反斜杠是\\
注意觀察下圖中的靜態(tài)代碼中的變量定義和運行中的內(nèi)存變量之間的區(qū)別。
代碼
package com.lingyejun.authenticator; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { // 正則表達式中\(zhòng)\\\匹配一個\ 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); } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
基于request.getAttribute與request.getParameter的區(qū)別詳解
本篇文章小編為大家介紹,基于request.getAttribute與request.getParameter的區(qū)別詳解。需要的朋友參考下2013-04-04解決springmvc關于前臺日期作為實體類對象參數(shù)類型轉(zhuǎn)換錯誤的問題
下面小編就為大家?guī)硪黄鉀Qspringmvc關于前臺日期作為實體類對象參數(shù)類型轉(zhuǎn)換錯誤的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06