正規表現忘備録

はじめに

Ruby技術者認定試験の例題に触ってみたところ、正規表現について見事にど忘れしていることがわかった。

忘れてしまった時用のメモ。

正規表現リテラル

/で囲むことによって正規表現オブジェクト(Regexpオブジェクト)を生成できる

regexp = /foo/
regexp.class

=> Regexp

このRegexpクラスこそがRuby正規表現を扱うためのクラス。

Regexpオブジェクトを扱うメソッド例

  • String#sub

    • str.sub(pattern, replacement)
    • 正規表現のパターン(pattern)にマッチした最初 の部分を文字列(replacement)に置換する。
    str = "Hello! world!"
    str.sub(/Hello/, "Help")
    => "Help! world!"
    
  • String#gsub

    • str.gsub(pattern, replacement)
    • 正規表現のパターン(pattern)にマッチした全ての部分を文字列(replacement)に置換する。subと違い、パターンにマッチしたもの全てを置換する。
    str = "Good boy, Good boy, You are Good boy"
    str.gsub(/Good/, "Bad")
    => "Bad boy, Bad boy, You are Bad boy"
    

メタ文字

https://www.megasoft.co.jp/mifes/seiki/meta.html

メタ文字を組み合わせることで様々なパターンを表現できる。

まとめ

参考

class Regexp \(Ruby 3\.1 リファレンスマニュアル\)