Java正則中為什么反斜線"\"需要用“\\\\”表示,原因詳解。


首先,我們需要知道在java字符串和正則表達式中,“\”都具有特殊的含義。

一、Java的字符串中"\"有兩個功能

  (一)代表特殊字符:\t代表制表符,\n代表換行....等。

  (二)代表轉義,在字符串中,如果出現” ‘ \,會造成代碼歧義,如:

   

  Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

  這時,就需要在造成歧義的字符前加\,來告訴編譯器:這個字符只是一個普通字符。

   

  會造成歧義的有 \    '    "當我們想讓他們代表普通字符的時候就需要變成\\    \'   \"

 

二、在正則中\同樣被賦予了兩個功能

  (一)代表特殊功能的字符:如\d代表數組

  (二)代表轉義,和上面一樣,當出現字符歧義時,加上\表示普通字符。

三、總結

  知道了原理,問題就好解釋了:

  因為" \ "號的在正則中被賦予了特殊含義,所以當我們想在正則中匹配”\”時,需要加上轉義變成了\\"

  在java字符串中,如果想表示兩個普通字符\\”,同樣需要為”\”加上轉義字符,變成了\\\\”。

  所以當我們想在java中使用正則表達式匹配"\"時,就需要寫成"\\\\"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM