Ruby 如何对字母数字字符串中第一次出现的字母进行大写?

Ruby 如何对字母数字字符串中第一次出现的字母进行大写?,ruby,string,Ruby,String,是否有任何简单的方法可以将字符串(如3500goat转换为3500goat)和goat350rat转换为goat350rat 我正在尝试将字母数字字符串中第一次出现的字母表转换为大写。我正在使用sub方法尝试下面的代码,但没有成功 stringtomigrate = 3500goat stringtomigrate.sub!(/\D{0,1}/) do |w| w.capitalize 这应该起作用: string.sub(/[a-zA-Z]/) { |s| s.upcase }

是否有任何简单的方法可以将字符串(如
3500goat
转换为
3500goat
)和
goat350rat
转换为
goat350rat

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

stringtomigrate = 3500goat

stringtomigrate.sub!(/\D{0,1}/) do |w|
      w.capitalize
这应该起作用:

string.sub(/[a-zA-Z]/) { |s| s.upcase }
或速记:

string.sub(/[a-zA-Z]/, &:upcase)
示例:

'3500goat'.sub(/[a-zA-Z]/, &:upcase)
# => "3500Goat"
'goat350rat'.sub(/[a-zA-Z]/, &:upcase)
# => "Goat350rat"
这应该起作用:

string.sub(/[a-zA-Z]/) { |s| s.upcase }
或速记:

string.sub(/[a-zA-Z]/, &:upcase)
示例:

'3500goat'.sub(/[a-zA-Z]/, &:upcase)
# => "3500Goat"
'goat350rat'.sub(/[a-zA-Z]/, &:upcase)
# => "Goat350rat"
试试这个

1.9.3-p545 :060 > require 'active_support/core_ext'
 => true 
1.9.3-p545 :099 > "goat350rat to Goat350rat".sub(/[a-zA-Z]/){ |x| x.titleize}
 => "Goat350rat to Goat350rat"
试试这个

1.9.3-p545 :060 > require 'active_support/core_ext'
 => true 
1.9.3-p545 :099 > "goat350rat to Goat350rat".sub(/[a-zA-Z]/){ |x| x.titleize}
 => "Goat350rat to Goat350rat"

谢谢@MarekLipka你的回答太棒了,你能解释一下为什么这个字符串“3500goat/about.txt”不起作用吗?回答得好。。我喜欢。@aravind.udayashankara确实如此-它大写字母字符的第一次出现。@MarekLipka我可以确认这个解决方案对我有效。谢谢你前来帮助我,抱歉我在测试时在其他地方出错了。再次感谢您@MarekLipka您的回答太棒了,您能解释一下为什么字符串“3500goat/about.txt”不起作用吗回答得好。。我喜欢。@aravind.udayashankara确实如此-它大写字母字符的第一次出现。@MarekLipka我可以确认这个解决方案对我有效。谢谢你前来帮助我,抱歉我在测试时在其他地方出错了。感谢再次使用
active\u支持
gem在这里是完全不必要的。感谢@anusha提供帮助,这对我来说也很有效,但我无法安装新的gem+1感谢您的努力使用
active\u支持
gem在这里是完全不必要的。感谢@anusha的帮助,这对我来说也很有效,但我无法安装新的gem+1.感谢您的努力