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”匹配bug、big和bug,但是不匹配beg。可以在括號中使用連字符“-”來指定字符的區間來簡化表示,例如正則表達式[0-9]可以匹配任何數字字符,這樣正則表達式“a[]c”就可以匹配“a0c”、“a1c”、“a2c”等字符串;還可以制定多個區間,例如“[A-Za-z]”可以匹配任何大小寫字母。還有一個相配合使用的元字符“^”,用在這裏並不像前邊的那個“^”一樣表示匹配行開始,而是表示“排除”,要想匹配除了指定區間之外的字符,就可以在左邊的括號和第一個字符之間使用^字符,例如“[^163A-Z]”將能偶匹配除了1、6、3和所有大寫字母之外的任何字符。 |
( ) | 將 () 之間括起來的表達式定義爲“組”(group),並且將匹配這個表達式的字符保存到一個臨時區域,這個元字符在字符串提取的時候非常有用。 |
| | 將兩個匹配條件進行邏輯“或”運算。'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配"zood" 或 "food"。 |
+ | 匹配前面的子表達式一次或多次。例如正則表達式9+匹配9、99、999等。 |
? | 匹配前面的子表達式零次或一次。例如,"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、如果用“.”作爲分隔的話,必須是如下寫法: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 他會把那些空的字符串給去掉