这样做的好方法是什么?似乎我可以使用几种不同方法的组合来实现我想要的东西,但可能有一个更简单的方法我忽略了。例如,PHP函数preg_replace将执行此操作。 Ruby中有类似的东西吗?
我打算做的简单例子:
orig_string = "all dogs go to heaven"
string_to_insert = "nice "
regex = /dogs/
end_result = "all nice dogs go to heaven"
答案 0 :(得分:12)
可以使用Ruby的“gsub”完成,按照:
http://railsforphp.com/2008/01/17/regular-expressions-in-ruby/#preg_replace
orig_string = "all dogs go to heaven"
end_result = orig_string.gsub(/dogs/, 'nice \\0')
答案 1 :(得分:3)
result = subject.gsub(/(?=\bdogs\b)/, 'nice ')
正则表达式检查字符串中的每个位置是否可以在那里匹配整个单词dogs
,然后在那里插入字符串nice
。
单词边界锚点\b
确保我们不会意外地匹配hotdogs
等。