Java中的轉義字符

1.轉義字符

   1.八進制轉義序列:\ + 1到3位5數字;範圍'\000'~'\377' 

           \0:空字符 
   2.Unicode轉義字符:\u + 四個十六進制數字;0~65535 
     \u0000:空字符 
   3.特殊字符:就3個 
      \":雙引號 
     \':單引號 
     \\:反斜線 
  4.控制字符:5個 
   \r 回車 
   \n 換行 
   \f 走紙換頁 

   \t 橫向跳格 

  \b 退格

點的轉義:. ==> u002E 
美元符號的轉義:$ ==> u0024 
乘方符號的轉義:^ ==> u005E 
左大括號的轉義:{ ==> u007B 
左方括號的轉義:[ ==> u005B 
左圓括號的轉義:( ==> u0028 
豎線的轉義:| ==> u007C 
右圓括號的轉義:) ==> u0029 
星號的轉義:* ==> u002A 
加號的轉義:+ ==> u002B 
問號的轉義:? ==> u003F 
反斜槓的轉義: ==> u005C 

2.正則表達式

首先看正則表達式的語法

元字符 說明
. 匹配任何單個字符。例如正則表達式“b.g”能匹配如下字符串:“big”、“bug”、“b g”,但是不匹配“buug”。 
$ 匹配行結束符。例如正則表達式“EJB$能夠匹配字符串“I like EJB”的末尾,但是不能匹配字符串“J2EE Without EJBs!”。 
^ 匹配一行的開始。例如正則表達式“^Spring”能夠匹配字符串“Spring is a J2EE framework”的開始,但是不能匹配“I use Spring in my project”。
* 匹配0至多個在它之前的字符。例如正則表達式“zo*”能匹配z以及zoo”;正則表達式“.*”意味着能夠匹配任意字符串。
\ 轉義符,用來將元字符當作普通的字符來進行匹配。例如正則表達式/$被用來匹配美元符號,而不是行尾;正則表達式/.用來匹配點字符,而不是任何字符的通配符。
[] 匹配括號中的任何一個字符。例如正則表達式“b[aui]g”匹配bugbigbug,但是不匹配beg。可以在括號中使用連字符“-”來指定字符的區間來簡化表示,例如正則表達式[0-9]可以匹配任何數字字符,這樣正則表達式“a[]c”就可以匹配“a0c”、“a1c”、“a2c”等字符串;還可以制定多個區間,例如“[A-Za-z]”可以匹配任何大小寫字母。還有一個相配合使用的元字符“^”,用在這裏並不像前邊的那個“^”一樣表示匹配行開始,而是表示排除,要想匹配除了指定區間之外的字符,就可以在左邊的括號和第一個字符之間使用^字符,例如“[^163A-Z]”將能偶匹配除了163和所有大寫字母之外的任何字符。
( )  () 之間括起來的表達式定義爲”(group),並且將匹配這個表達式的字符保存到一個臨時區域,這個元字符在字符串提取的時候非常有用。
| 將兩個匹配條件進行邏輯運算。'z|food' 能匹配 "z"  "food"'(z|f)ood' 則匹配"zood"  "food"
+ 匹配前面的子表達式一次或多次。例如正則表達式9+匹配999999等。
? 匹配前面的子表達式零次或一次。例如,"do(es)?" 可以匹配 "do"  "does" 中的"do" 。此元字符還有另外一個用途,就是表示非貪婪模式匹配,後邊將有介紹
{n} 匹配確定的 n 次。例如,“e{2}不能匹配“bed”中的“d”,但是能匹配“seed”中的兩個“e”。
{n,} 至少匹配n次。例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配seeeeeeeed”中的所有“e”。
{n,m} 最少匹配 n 次且最多匹配 m 次。“e{1,3}”將匹配“seeeeeeeed”中的前三個“e”。

因此,在實際使用包含元字符進行匹配的正則表達式,必須使用匹配語法:

  1. $ ---> \$     單個匹配時,正則表達式中匹配"\\$"
  2. ( ---> \(     單個匹配時,正則表達式中匹配"\\("
  3. ) ---> \)  
  4. * ---> \*  
  5. + ---> \+  
  6. . ---> \.     同上
  7. [ ---> \[  
  8. ] ---> \]  
  9. ? ---> \?  
  10. \ ---> \\     單個匹配時,正則表達式中匹配"\\\\" 
  11. ^ ---> \^     單個匹配時,正則表達式中匹配"\\^"
  12. { ---> \{  
  13. } ---> \}     單個匹配時,同上

即在字符串中插入字符注意該使用轉義字符的就使用轉義字符。但是,使用正則表達式進行匹配,嚴格依照上面的進行。

例如:

1、如果用“.”作爲分隔的話,必須是如下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split("."); 
2、如果用“|”作爲分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|"); 
“.”和“|”都是轉義字符,必須得加"\\"; 
3、如果在一個字符串中有多個分隔符,可以用“|”作爲連字符,比如:“acount=? and uu =? or n=?”,把三個都分隔出來,可以用String.split("and|or"); 
4.如果字符串是"a/b////" 如果用"/"來分隔這個字符串 分隔的出來的數組的長度是2 而不是5 就是數組裏面存放的是a 和 b 他會把那些空的字符串給去掉


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章