正規表現忘備録
はじめに
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
メタ文字を組み合わせることで様々なパターンを表現できる。
まとめ
- Rubyでは/で囲む(正規表現リテラル)ことによって正規表現オブジェクト(Regexpオブジェクト)を生成できる。
- RegexpクラスはRubyで正規表現を扱うためのクラス
- メタ文字を用いることで様々なパターンを表現できる。