string.split(“(?!^)”)解释

时间:2013-09-08 21:23:57

标签: java string

我正在尝试将String的字符拆分为String数组。我找到了解决方案here

解决方案很完美,但是我不了解.split("(?!^)")的工作方式。我熟悉split()方法的基础知识。有人可以提供解释吗?

1 个答案:

答案 0 :(得分:7)

(?!^)是由regular expression组成的negative lookahead^anchor,用于表示字符串的开头。 (?!^)匹配所有未跟随^的字符串开头的0字符串。换句话说,它匹配字符串开头的除之外的所有0长度字符串

例如,在字符串abc中,将有3个匹配:ab之间的匹配,bc之间的匹配,以及一个c之后。拆分这些匹配会产生所需的数组(请注意,split()的单参数版本会丢弃任何尾随的空字符串,这就是为什么没有包含在结果数组中的原因。)