我正在尝试将 Ruby 中的全大写字符串转换为小写字符串,但每个单词的第一个字符都是大写。示例:
将“我的字符串在这里”转换为“我的字符串在这里”。
我知道我可以使用 .downcase 方法,但这会使所有内容都变成小写(“我的字符串在这里”)。我正在扫描文件中的所有行并进行此更改,那么是否有可以通过 ruby 使用的正则表达式来实现此目的?
谢谢!
最佳答案
如果您正在使用 Rails(您真正需要的只是 ActiveSupport,它是 Rails 的一部分),您可以使用 titleize
:
"MY STRING HERE".titleize
# => "My String Here"
如果您使用普通 Ruby 但不介意加载少量 ActiveSupport,您可以先要求它:
require 'active_support/core_ext/string/inflections'
# => true
"MY STRING HERE".titleize
# => "My String Here"
N.B. 默认情况下,titleize
不能很好地处理首字母缩略词,会将 camelCaseStrings 拆分为单独的单词。这可能是可取的,也可能不是可取的:
"Always use SSL on your iPhone".titleize
# => "Always Use Ssl On Your I Phone"
您可以(部分)通过添加“首字母缩略词”来解决此问题:
require 'active_support/core_ext/string/inflections' # If not using Rails
ActiveSupport::Inflector.inflections do |inflect|
inflect.acronym 'SSL'
inflect.acronym 'iPhone'
end
"Always use SSL on your iPhone".titleize
# => "Always Use SSL On Your IPhone"
对于那些说英式英语的人(或者努力拼写 titleize 的人),没有 .titleise
别名,但您可以使用 .titlecase
代替。
关于ruby - 使用 Ruby 将大写字符串转换为标题大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1791639/