我正在尝试将字符串的字符拆分为字符串数组。我找到了解决方案here .
解决方案是完美的,但是我不明白 .split("(?!^)")
是如何工作的。我熟悉 split()
方法的基础知识。有人可以解释一下吗?
最佳答案
(?!^)
是 regular expression由 negative lookahead 组成。 ^
是 anchor用于表示字符串的开始。 (?!^)
匹配所有后面不跟有 ^
(字符串开头)的 0 长度字符串。换句话说,它匹配除字符串开头的所有 0 长度字符串。
例如,在字符串 abc
中,将有 3 个匹配项:a
和 b
之间有一个匹配,b 之间有一个匹配
和 c
,以及 c
之后的一个。对这些匹配项进行拆分会生成所需的数组(请注意,split()
的 1 参数版本会丢弃任何尾随空字符串,这就是结果数组中不包含任何字符串的原因)。
关于java - string.split ("(?!^)")解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688787/