RubyのGsubメソッドを使用する3つの素晴らしい方法
Rubyのgsub
について話しましょう 方法と使い方。まず、このメソッドを使用するには文字列が必要です。
なぜですか?
gsub
の要点は 文字列の一部を置き換えることです。
実際 :
「gsub」の「sub」は「substitute」を表し、「g」は「global」を表します。
ここに文字列の例があります :
str = "white chocolate"
「白」という単語を「暗い」という単語に置き換えたいとしましょう。
方法は次のとおりです :
str.gsub("white", "dark")
これは言っています :
与えられた文字列str
、最初の単語のすべての出現箇所を置き換えます(white
)2番目の単語(dark
。
つまり、私たちははるかに優れたチョコレートを食べることができます。
ちょっと待ってください、それはただの文字列です。
食べられない! 🙂
とにかく…
Rubyのgsub
メソッドは、単純な置換よりもはるかに多くのことを実行できます 。
いくつかの例を見てみましょう。
パターンを正規表現に置き換える
1つの単語を置き換えることは問題ありません。
しかし、パターンを置き換えることができたらどうでしょうか?
いいね :
年、メールアドレス、電話番号など
できます!
ここに例があります :
"a1".gsub(/\d/, "2") # "a2"
最初の引数は正規表現であり、ここで説明するには多すぎます。
しかし、それはパターンマッチング言語 。
この場合、\d
「a1」の数字「1」のような数字を探します。
これもできます :
"a1".gsub(/(\w)(\d)/, '\2\1')
結果 :
"1a"
順番を入れ替えました!
これは、「キャプチャグループ」と呼ばれる機能を使用して機能します。
グループは\1
として使用できます 最初のグループの場合、\2
2番目のグループなど
グループは括弧付きで作成されます。
ブロック付きの高度なGsub
ブロックでgsubを使い始めると、物事は本当に面白くなります。
なぜですか?
ブロック内では、ロジックを使用して何かを置き換える方法を決定できるためです。
静的な値を使用する代わりに。
例 :
"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }
\w+
で動物を見つけます 、これは「1つ以上の英数字」を意味します。
次に :
- 「犬」の場合は、「猫」に置き換えます
- 単語がその他の場合 、「犬」に置き換えます
この種のロジックは、静的な値であるgsubの2番目のパラメーターでは不可能です。
複数の用語をハッシュに置き換える
作成する置換のリストがある場合は、ハッシュを使用できます。
このように :
colors = { "B" => "blue", "G" => "green", "R" => "red" }
これは、キーが値に置き換えられる翻訳辞書のように機能します。
ここに例があります :
"BBBGR".gsub(/\w/, colors)
結果 :
"bluebluebluegreenred"
最初の引数がキーと一致することを確認してください。
この場合、\w
個々の文字に一致するため、「B」に一致してから「青」に置き換えます。
概要
Rubyのgsubメソッドについて学びました。これは、文字列内の文字を置き換えたり、置き換えたりできる強力な方法です。
複数の用途があります :
- 無効な文字を削除する(2番目の引数を空の文字列にする)
- プレースホルダーと頭字語を完全な値に置き換える
- パターンとロジックを使用して文字列を変更する
今度は、この方法で練習する番です。そうすれば、新しい知識を定着させることができます。
読んでくれてありがとう🙂
-
Ruby Mapメソッドの使用方法(例付き)
Mapは、配列、ハッシュ、範囲で使用できるRubyメソッドです。 マップの主な用途は、データを変換することです。 例 : 文字列の配列が与えられた場合、すべての文字列に目を通し、すべての文字を大文字にすることができます。 または、Userのリストがある場合 オブジェクト… 変換できます 対応するメールアドレス、電話番号、またはその他の属性のリストにそれらを追加します Userで定義 クラス。 これを行う方法を正確に見てみましょう! ルビーマップ構文 マップの構文は次のようになります: array = [a, b, c] array.map { |string| string.
-
RubyでStructとOpenStructを使用する方法
Rubyの構造体とは何ですか? 構造体は組み込みのRubyクラスであり、値オブジェクトを生成する新しいクラスを作成するために使用されます。値オブジェクトは、関連する属性を一緒に格納するために使用されます。 ここに例があります : Point 2つの座標(x &y 。 このデータはさまざまな方法で表すことができます。 いいね : 配列[10, 20] ハッシュ{ x: 10, y: 10 } オブジェクトPoint.new(10, 20) 複数のPointを使用する場合 、オブジェクトアプローチを使用することをお勧めします。 しかし… これら2つの値を一緒に格納するた