如何在字母数字字符串中首次出现字母?

ara*_*ara 1 ruby string

有没有简单的方法将字符串转换喜欢3500goat3500Goatgoat350ratGoat350rat

我试图将字母数字字符串中第一次出现的字母转换为大写.我正在使用该方法尝试下面的代码sub,但没有运气.

stringtomigrate = 3500goat

stringtomigrate.sub!(/\D{0,1}/) do |w|
      w.capitalize
Run Code Online (Sandbox Code Playgroud)

Mar*_*pka 6

这应该工作:

string.sub(/[a-zA-Z]/) { |s| s.upcase }
Run Code Online (Sandbox Code Playgroud)

或简写:

string.sub(/[a-zA-Z]/, &:upcase)
Run Code Online (Sandbox Code Playgroud)

例子:

'3500goat'.sub(/[a-zA-Z]/, &:upcase)
# => "3500Goat"
'goat350rat'.sub(/[a-zA-Z]/, &:upcase)
# => "Goat350rat"
Run Code Online (Sandbox Code Playgroud)