奇怪的gsub函数

时间:2018-07-11 00:53:37

标签: ruby

我有以下代码:

def word_sizes(sentence)
  sizes = Hash.new(0)
  sentence.split(' ').each do |word|
   p "#{word} => #{word.gsub(/^[a-z]/i, '')}"
  end
end

word_sizes("Four score and seven.")

我期望的结果是gsub函数删除每个单词中的所有非字母字符。但是,我的输出看起来像这样:

"Four => our"
"score => core"
"and => nd"
"seven. => even."

似乎gsub只带出每个单词的第一个字符。这真令人困惑。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这应该有效,

word.gsub(/[^a-z]/i, '')

您只是在错误的位置插入了^(插入符号)语法