如何从ruby中的数组中删除标点符号?

时间:2015-07-13 15:54:06

标签: arrays ruby string

我需要编写一个方法,给定一个句子,返回一个包含所有其他单词的数组。需要从单词中删除标点符号。我可以让它返回其他所有单词,但我仍然坚持删除标点符号。这是我到目前为止写的:

def alternate_words(str)
  return_array = []
  str.split.map.each_slice(2) do |x, y|
    return_array << x
  end
end

5 个答案:

答案 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 + /)#返回仅包含字母

的字符串