利用正则表达式分割字符串
在Java中我们经常利用正则表达式来分割字符串,正则表达式的确给我们带来了诸多方便,但正则表达式中也有很多细节之处值得我们注意,否则就会给我们带来意想不到的结果。
下面是我总结的一些值得注意的地方:
(1)反斜杠在正则表达式中只能以偶数的次数连续出现
例如:\\(, \\{, \\\\
(2)特殊的字符在正则表达式中需要进行转义处理
| 特殊字符 | 处理方式 |
| + | \\+ |
| ? | \\? |
| \ | \\\\ |
| * | \\* |
| ^ | \\^ |
| . | \\. |
| $ | \\$ |
| ( | \\( |
| ) | \\) |
| { | \\{ |
| } | \\} |
(3)如果正则表达式匹配的分割串出现在目标串的首部,则分割后产生的第一个字符串为空字符串
String[] str = "abcfhdjfabcjdkabc".split("(abc)+");
str[0]是一个空字符串
(4)当要指定正则表达式中分割字符串的次数时,应将分割字符串用()括起来
String[] str = "abcdfifjabcabcdfkabcabckgflh".split("(abc)+");

浙公网安备 33010602011771号