1

これはあなたのオタクにとって簡単なものだと確信しています:

文字列「ThisIsMyString」があり、Ruby を使用して「this_is_my_string」のようにフォーマットしたいとします。

それ、どうやったら出来るの?

マット

4

4 に答える 4

5

ActiveSupport にアクセスできる場合 (Rails のように、外部から使用可能)、Inflectorモジュールunderscoreのメソッドを使用できます。

"ClassName".underscore # => class_name
于 2009-07-06T16:56:07.210 に答える
2

class String def to_under_score (gsub(/[AZ]) { |p| "_" + p.downcase })[1..-1] end end

"MyTestCase".to_under_score => "my_test_case"

http://www.ruby-forum.com/topic/113697#265696から

于 2009-07-06T16:43:58.170 に答える
1

Ruby Facetsには、これを行う関数があります: String#underscore. そのソースは次のとおりです。

  def underscore
    gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
  end
于 2009-07-06T16:51:25.377 に答える
1

RailsプロジェクトからActiveSupportにアクセスできる場合は、次のように簡単です。

require 'activesupport'
"ThisIsMyString".underscore
于 2009-07-06T16:51:36.157 に答える