str = "foo bar jim jam. jar jee joon."
我需要由空格分隔所有2-和3-字詞組的輸出:
[ "foo bar", "bar jim", "jim jam", "jar jee", "jee joon",
"foo bar jim", "bar jim jam", "jar jee joon" ]
注意特別是由於期限的原因,缺少上述的「果醬罐」,「吉姆果醬罐」和「果醬罐吉」。我不能使用str.scan(/\w+/).each_cons(2).map{ |a| a.join(' ') }
,因爲那將包括"jam jar"
。
掃描/\w+ \w+/
產生["foo bar", "jim jam", "jar jee"]
,特別缺少「bar jim」和「jee joon」,並強調了該問題。
真實世界的應用程序正在爲搜索引擎生成一個基於短語的索引。我希望找到所有真正連續的單詞作爲短語,不包括那些標點符號分開的單詞。
編輯:好像有可能是一種方式,正則表達式來做到這一點/經上的變化掃描:
"a b c d".scan(/(?=([abc] [abc]))[abc]/)
#=> [["a b"], ["b c"]]
爲什麼不分裂'str'成句子,並單獨進行掃描嗎? –
@mu因爲我以前沒有想過。我現在要走這條路。 – Phrogz
我想你陷入了「我只有一把錘子」的陷阱:) –