【发布时间】:2015-08-17 02:18:37
【问题描述】:
我正在使用 Ruby,我想将字符串及其标点符号拆分为一个数组,但我想将撇号和连字符视为单词的一部分。例如,
s = "here...is a happy-go-lucky string that I'm writing"
应该变成
["here", "...", "is", "a", "happy-go-lucky", "string", "that", "I'm", "writing"].
我得到的最接近的仍然不够,因为它没有正确地将连字符和撇号视为单词的一部分。
这是迄今为止我得到的最接近的:
s.scan(/\w+|\W+/).select {|x| x.match(/\S/)}
产生
["here", "...", "is", "a", "happy", "-", "go", "-", "lucky", "string", "that", "I", "'", "m", "writing"]
.
【问题讨论】:
-
如果撇号是单词的一部分,为什么
here...is不是一个完整的单词? -
here和is在语义上是不同的词,尽管我正在分析的文本有时涉及不良的标点习惯(我正在解析一些 Yelp 评论^_^)。