Ruby - 用另一个字符串替换第一次出现的子字符串

时间:2011-11-01 07:01:52

标签: ruby string replace

a = "foobarfoobarhmm"

我希望输出为“fooBARfoobarhmm”

即只有第一次出现的“bar”应该用“BAR”代替。

3 个答案:

答案 0 :(得分:105)

使用#sub

a.sub('bar', "BAR")

答案 1 :(得分:16)

正如Yossi所说,

String#sub正是你所需要的。但我会改用Regexp,因为它更快:

a = 'foobarfoobarhmm'
output = a.sub(/foo/, 'BAR')

答案 2 :(得分:7)

替换第一次出现,只需这样做:

str = "Hello World"
str['Hello'] = 'Goodbye'
# the result is 'Goodbye World'

你甚至可以使用正则表达式:

str = "I have 20 dollars"
str[/\d+/] = 500.to_s
# will give 'I have 500 dollars'