web-dev-qa-db-ja.com

単純な正規表現-アンダースコアをスペースに置き換えます

こんにちは、最初のRails appを書いています。次のように、入力ID名の下線をスペースで置き換えようとしています。

before:test_string

:テスト文字列

これどうやってするの?これがちょっとばかげた質問の場合は申し訳ありませんが、私は正規表現にはあまり詳しくありません...

24
mportiz08

おっと、私は実際にそれを機能させていました-変数名を更新するのを忘れた:P

私はこれを使っていました:

@id = params[:id]
@title = @id.gsub("_", " ")
9
mportiz08
str.gsub!(/_/, ' ')

gsubは「グローバル置換」を表し、感嘆符は、置換された文字列を返すだけでなく、文字列自体を変更することを意味します。

String#tr!を使用して、正規表現なしでそれを行うこともできます:

str.tr!('_', ' ')
35
Jeremy Ruten

Railsでより簡単にできます .humanize およびRubyの .downcase メソッドですが、最後の「_id」文字列も削除するので注意してください(ほとんどの場合、これは必要なものだけです。

'text_string_id'.humanize.downcase
 => "text string" 
28
Andión

Railsでの分割と結合の使用

"test_string" .split( '_')。join( '')

0
Suganya