Ruby-如何删除字符串

时间:2017-06-27 16:40:53

标签: ruby

例如,字符串是"我今天非常高兴"。我想删除包含字母" a"的所有单词。所以输出应该是"我非常"。我怎么能这样做?

3 个答案:

答案 0 :(得分:5)

与@ Sam的回答相似,只有更小:)使用鲜为人知的Enumerable#grep_v

  

#grep的倒置版本。返回枚举中每个元素的数组,而不是Pattern === element。

"I am very happy today".split.grep_v(/a/).join(' ') # => "I very"

答案 1 :(得分:2)

您可以尝试拆分每个单词并删除那些带有字母' a'并像这样加入这些词:

"I am very happy today".split.reject{ |word| word.include?("a") }.join(" ")

答案 2 :(得分:1)

以下是正则表达式的示例:

  • 字边界
  • 字母数字字符
  • 一个
  • 字母数字字符
  • 字边界

然后你需要删除不需要的空格。

"I am very happy today".gsub(/\b\w*a\w*\b/i, '').strip.gsub(/\s+/, ' ')

splitjoin的答案更清晰。