如何用字母数字字符串大写第一次出现的字母?

时间:2014-06-03 09:39:14

标签: ruby string

有没有简单的方法可以将3500goat等字符串转换为3500Goatgoat350ratGoat350rat

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

stringtomigrate = 3500goat

stringtomigrate.sub!(/\D{0,1}/) do |w|
      w.capitalize

2 个答案:

答案 0 :(得分:6)

这应该有效:

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 :(得分:1)

试试这个

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"