使用正则表达式修改对象字符串属性的集合

时间:2011-03-19 13:29:26

标签: ruby-on-rails regex collections

我有一个Item对象的集合。每个项目都有描述。我想遍历集合,对于每个描述属性,我想将“deliver”替换为“send”。每个描述中都会出现“传递”一词。例如:

  • 第1项:我们将在3天内交付。
  • 第2项:我们将在2天内交付。
  • 第3项:我们将在7天内交付。
  • ...

1 个答案:

答案 0 :(得分:2)

对于简单的搜索和替换,听起来你想要这样的东西:

collection.each { |item| item.description.gsub!('deliver', 'send') }

如果这些是ActiveRecord对象或其他类似物,那么您可能还需要item.save

如果你需要更强大的模式匹配,String#sub和相关方法可以接受正则表达式而不是第一个参数的字符串,但如果你需要的话,它可能更快,更可读使用字符串。有关更多详细信息和其他选项,请参阅API docs for String#sub