2012-03-02 251 views
1

什么是高达分割字符串转换成的“单词”数组的最佳方式。 按空格拆分,也用短划线拆分,其中破折号成为前一个“单词”的一部分。分割字符串

实施例:

“这是一个例子,字符串

演示我的意思”

[ “这”, “是”, “一个”, “实施例 - ”,“字符串”, “来”, “演示”, “做什么”, “我”, “中庸”]

编辑:我是个白痴 - 它是这样的:

someString.replace(/-/g, "- ").split(/[\s]/); // retain dashes 

回答

6

Splittin如果分隔符应该留在结果中,g将不起作用,因为分隔符总是被占用。

使用.match代替:

"This is an example-string to demo what I mean".match(/[^\s-]+-?/g); 
// ["This", "is", "an", "example-", "string", "to", "demo", "what", "I", "mean"] 

这正则表达式匹配一个或多个字符不是空格/破折号,并按照它的可选冲刺。使用g标志,将返回所有匹配项。

+0

你回答,因为我是编辑用的解决方案,我张贴后一分钟内想出了这个问题。你的方法比我的更好吗? – Adamarla 2012-03-02 14:59:59

+0

@adamarla:看起来他们的行为是一样的,除非一个词以破折号开头。 – pimvdb 2012-03-02 15:11:25

+0

啊,是的,最初的破折号可能很重要:“-12.85是否定的” – Adamarla 2012-03-02 15:38:14