Ruby – 用另一个stringreplace第一次出现的子string

a = "foobarfoobarhmm"

我想输出为“”fooBARfoobarhmm“

即只有第一次出现的“酒吧”应该replace为“酒吧”。

使用#sub

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

正如Yossi所说, String#sub就是你所需要的。 但我会使用正则expression式,因为它更快:

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

要取代第一次出现,只要做到这一点:

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

你甚至可以使用正则expression式:

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