在Java中我們經常利用正則表達式來分割字符串,正則表達式的確給我們帶來了諸多方便,但正則表達式中也有很多細節之處值得我們注意,否則就會給我們帶來意想不到的結果。
下面是我總結的一些值得注意的地方:
(1)反斜杠在正則表達式中只能以偶數的次數連續出現
例如:\\(, \\{, \\\\
(2)特殊的字符在正則表達式中需要進行轉義處理
| 特殊字符 | 處理方式 |
| + | \\+ |
| ? | \\? |
| \ | \\\\ |
| * | \\* |
| ^ | \\^ |
| . | \\. |
| $ | \\$ |
| ( | \\( |
| ) | \\) |
| { | \\{ |
| } | \\} |
(3)如果正則表達式匹配的分割串出現在目標串的首部,則分割后產生的第一個字符串為空字符串
String[] str = "abcfhdjfabcjdkabc".split("(abc)+");
str[0]是一個空字符串
(4)當要指定正則表達式中分割字符串的次數時,應將分割字符串用()括起來
String[] str = "abcdfifjabcabcdfkabcabckgflh".split("(abc)+");
