JAVA 中轉義符的理解


  生物信息中有時候會遇到JAVA寫的程序,今天閱讀源碼的時候發現對於正則中的轉義符不好理解,后來查資料后終於弄明白了,這里詳細說明一下:

  字符串的表示有三種方法:1、直接單字符,例如“A”;2、由轉義字符表示的特殊字符,例如“\t”; 3、Unicode字符,例如“\u0008”。其中轉義字符表示的字符串,顯示出來的就是這種模式,例如“\t”與“  ”是同一個字符串,“abc\tefg”與"abc  efg"是同一個字符串。

  但是單獨的“\”是不能出現在JAVA的字符串中作為字符串的,比如說如果要打印“abc\efg”,這時會報錯:“錯誤:非法轉義符”。這是因為系統把“\e“當做轉義符,但是實際上並沒有這個轉義符。如果真的要將“\”作為一個符號打印輸出,那么就應該在"\"前面再加一個“\”以表示后面的“\”是要被輸出,例如打印輸出“abc\\efg”,這時終端就會顯示“abc\efg”。

  同樣的在正則表達式中,“\u0041\\\\” 將匹配"A\"。 乍一看有點暈,怎么有這么多反斜杠。前面已經講過了,這時因為在JAVA中‘\’單獨出現會報錯,所以此處的四個“\\\\”可以看成兩個,而這兩個“\\”又可以看成是對一個“\”的轉義了(在正則表達式中)。例子如下: 打印輸出“abc\\\efg”時會報錯“錯誤:非法轉義符”;打印輸出“abc\\\\efg”時顯示“abc\\efg”;打印輸出"abc\\\\\efg"時同樣的報錯,而打印輸出"abc\\\\\\efg”則顯示“abc\\\efg”。 

  總結一下,也就是說,如果在字符串中如果出現了多個“\”連在一起,那么兩個兩個一起看。如果在正則表達式中出現了多個“\”連在一起,那么要四個四個一起看,這四個一起是匹配一個“\”字符,因為如果只有兩個“\”的話,那么實際上就是一個“\”,它后面還要有例如‘t’,'d'這樣的字符跟着才能表示轉義,否則就會報錯。


免責聲明!

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



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