我需要编写一个方法,给定一个句子,返回一个包含所有其他单词的数组。需要从单词中删除标点符号。我可以让它返回其他所有单词,但我仍然坚持删除标点符号。这是我到目前为止写的:
def alternate_words(str)
return_array = []
str.split.map.each_slice(2) do |x, y|
return_array << x
end
end
答案 0 :(得分:8)
使用String#gsub
删除您不想要的字符
str.gsub(/[[:punct:]]/, '')
答案 1 :(得分:1)
str.scan(/[a-z']+/i).each_slice(2).map(&:first)
答案 2 :(得分:1)
尝试做
str.split(/\W/)
在您的示例中,您的功能可能是
def alternate_words(str)
str.split(/\W/).each_slice(2).collect(&:first)
end
答案 3 :(得分:0)
str.gsub(/[[:punct:]]/, '').split.each_slice(2).map(&:first)
答案 4 :(得分:-1)
str.scan(/ \ W + /)#返回仅包含字母
的字符串