[解決済み] Rubyの複数文字列置換
2023-05-15 12:36:08
質問
str = "Hello☺ World☹"
期待される出力は
"Hello:) World:("
こんなこともできるんだ
str.gsub("☺", ":)").gsub("☹", ":(")
私は単一の関数呼び出しでこれを行うことができますので、他の方法はありますか?例えば
str.gsub(['s1', 's2'], ['r1', 'r2'])
どのように解決するのですか?
Ruby 1.9.2以降。
String#gsub
は、マッチしたキーで置換するための第2パラメータとしてhashを受け付けます。正規表現で置換すべき部分文字列をマッチさせ、置換される値としてhashを渡すことができます。
こんな感じ。
'hello'.gsub(/[eo]/, 'e' => 3, 'o' => '*') #=> "h3ll*"
'(0) 123-123.123'.gsub(/[()-,. ]/, '') #=> "0123123123"
Ruby 1.8.7では、ブロックを使って同じことを実現します。
dict = { 'e' => 3, 'o' => '*' }
'hello'.gsub /[eo]/ do |match|
dict[match.to_s]
end #=> "h3ll*"
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み] MacでRubyを1.9.xにアップデートするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] このタスクを実行するには、Ruby と Sass をインストールし、PATH に配置する必要があります」という警告を解決するには?
-
[解決済み] Rubyオプションのパラメータ
-
[解決済み] 2つのハッシュを比較するにはどうすればよいですか?
-
[解決済み] 今月の名前(Date.today.monthをnameに変換)。
-
[解決済み] RVMを使用してRubyのバージョンを変更するには?
-
[解決済み] メソッドから2つ以上の値を返す
-
[解決済み] ランダムなブール値を返す最良の方法
-
[解決済み] Rubyで、selectとmapを組み合わせたArrayメソッドはありますか?
-
[解決済み] Rubyの基本的なプロジェクトはどのように設定するのですか?
-
[解決済み] キュウリのステップを再利用