鉴于投入:
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" ]
特别要指出的是,由于这一时期的原因,上述文件缺少“jam jar”、“jim Jam jar”和“jam jar Jee”。
我无法使用 str.scan(/w+/).each_cons(2).map{aa a.join()/code>, 因为这包括
"jam jar"
。
扫描 /w+ w+/
产地 [“foo bar”, "jim jam, "jarjee"]
, 特别是缺少“bar jim” 和“jee joon”, 并突出问题。
用于此功能的真实世界应用程序正在为搜索引擎生成一个基于词组的索引。 我想将所有真正连续的单词都作为词组, 不包括有标点分隔单词的单词 。 em>
< 坚固 > 编辑 < / 坚固 > : 似乎有办法在regex/ scan 中做到这一点, 其变异于 :
"a b c d".scan(/(?=([abc] [abc]) )[abc]/)
#=> [["a b"], ["b c"]]