使用正则表达式分割字符串

3

当我在一个字符串上使用正则表达式的split时,会得到以下输出。

string = "12345678"

string.split(/(..)/)

=> ["", "12", "", "34", "", "56", "", "78"]

为什么split方法会返回空字符串?我知道使用scan方法可以得到没有空字符串的字符串对,但我想知道为什么split方法会返回空字符串。


3
不是重复问题,请仔细阅读问题。 - sawa
3
@WiktorStribiżew - 这个链接中的问题解决了如何得到我想要的结果。我想知道为什么它会给我返回空字符串。 - NateW
好的,我明白很难找到另一个原始问题。我们就用这个吧。 - Wiktor Stribiżew
现在可以问两个问题:“我该如何解决它”和“我的代码为什么失败了”?这感觉很不合逻辑,我会将它们“合并”成一个问题。如果您知道任何讨论此事的元帖,请分享。 - Wiktor Stribiżew
@WiktorStribiżew - 我明白你的意思。我会编辑我的问题,使其更加专注。 - NateW
1个回答

4

关于初始空字符串,这是因为split最初的目的是使用分隔符将字符串分割成字段。它总是假定在分隔符之前有一个字段,即使它是空的。至于其他空字符串,则是因为分隔符相邻。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接