我正在尝试将String的字符拆分为String数组。我找到了解决方案here。
解决方案很完美,但是我不了解.split("(?!^)")
的工作方式。我熟悉split()
方法的基础知识。有人可以提供解释吗?
答案 0 :(得分:7)
(?!^)
是由regular expression组成的negative lookahead。 ^
是anchor,用于表示字符串的开头。 (?!^)
匹配所有未跟随^
的字符串开头的0字符串。换句话说,它匹配字符串开头的除之外的所有0长度字符串。
例如,在字符串abc
中,将有3个匹配:a
和b
之间的匹配,b
和c
之间的匹配,以及一个c
之后。拆分这些匹配会产生所需的数组(请注意,split()
的单参数版本会丢弃任何尾随的空字符串,这就是为什么没有包含在结果数组中的原因。)