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