3 Awesome Ways To Use Ruby’s Gsub Method
On 10月 4, 2021 by admin Rubyのgsub
メソッドについて説明します。
まず、このメソッドを使うには、文字列が必要です。
なぜかというと、文字列の一部を置き換えるためにgsub
を使うからです。
実際には、
「gsub」の「sub」は「substitute」、「g」は「global」の略です。
Good.
If not you can borrow mine.
Here is it:
str = "white chocolate"
White を Dark に置き換えたいとします。
Here’s how:
str.gsub("white", "dark")
This is saying:
Given the string str
, command it to replace ALL occurrence of the first word (white
) with the second word (dark
).
Wich means we get to eat much better chocolate.
Oh wait, it’s just string.
We can’t eat that.
Away…
Ruby の gsub
method can do more much than simple substitution.
は、シンプルな置換以外にもたくさんのことができます。
いくつかの例を見てみましょう。
Replace Patterns With A Regular Expression
単一の単語を置き換えることは問題ありません。
しかし、パターンを置き換えることができるとしたらどうでしょう。
たとえば、年、電子メール アドレス、電話番号などです。
以下はその例です。
"a1".gsub(/\d/, "2")# "a2"
最初の引数は正規表現で、ここでは紹介しきれません。
でもパターンマッチ言語です。
この場合、\d
は「a1」の「1」など数字を探します。
"a1".gsub(/(\w)(\d)/, '')
このようにすることもできます。
"1a"
順番を入れ替えました!
これは、「キャプチャグループ」という機能を使っています。
グループは、1つ目のグループは、2つ目のグループは
というように使います。
グループはカッコ付きで作成されます。
Advanced Gsub With Blocks
ブロックで gsub を使い始めると、本当に面白くなります。
なぜかというと、ブロック内で、何かをどう置き換えるかを決めるために、論理を使用することができるからです。
静的な値を使用する代わりに、
"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }
たとえば、「1 つ以上の英数字」を意味する \w+
で動物を探します。
Then:
- それが「犬」なら「猫」に置き換え
- それ以外なら「犬」に置き換え
このような論理はgsubの第2パラメータという固定値では無理ですね。
Replace Multiple Terms With A Hash
置換のリストがある場合、ハッシュを使用することができます。
例えば次のようになります:
colors = { "B" => "blue", "G" => "green", "R" => "red"}
これは翻訳辞書のように動作し、キーはその値で置き換えられます:
"BBBGR".gsub(/\w/, colors)
その結果:
"bluebluebluegreenred"
第1引数がキーと一致するか確認します。
この場合、\w
は個々の文字にマッチするので、”B” にマッチしてから “blue” に置換します。
まとめ
あなたは Ruby の gsub メソッドを学びましたね! 文字列の中の文字を置き換えたり、置換したりすることができる強力なメソッドです。
このメソッドには複数の使い方があります。
- 無効な文字を削除する (第 2 引数を空の文字列にする)
- プレースホルダーを置換する & 頭文字を完全な値にする
- パターン & ロジックを使って文字を変える
次はあなたがこのメソッドを実践して、新しい知識を定着させる番です。
読んでくれてありがとう🙂
。
コメントを残す