我确信这对你来说很容易:
假设我有一个字符串“ThisIsMyString”,我想使用Ruby将其格式化为“this_is_my_string”。
我该怎么做?
马特
答案 0 :(得分:5)
如果您有权访问ActiveSupport(如在Rails中,但在外部可用),则可以使用Inflector module中的underscore
方法。
"ClassName".underscore # => class_name
答案 1 :(得分:2)
class String def to_under_score (gsub(/ [A-Z]){| p |“_”+ p.downcase})[1 ..- 1] 结束 端
“MyTestCase”.to_under_score => “my_test_case”
答案 2 :(得分:1)
Ruby Facets有一个函数来执行此操作:String#underscore。这是它的source:
def underscore
gsub(/::/, '/').
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
gsub(/([a-z\d])([A-Z])/,'\1_\2').
tr("-", "_").
downcase
end
答案 3 :(得分:1)
如果您可以从 Rails 项目访问 ActiveSupport ,那就像
一样简单require 'activesupport'
"ThisIsMyString".underscore