Rubyの正規表現を学ぶ
正規表現
キャプチャ
丸括弧 ( ) によってキャプチャをすることができます。
名前付きキャプチャ
Regexp
クラス
オプション
組み込み変数/
特殊変数
特殊変数ではなく、
MatchData
オブジェクトを利用する方がわかりやすいかもしれない
正規表現オブジェクトを作る方法
正規表現リテラル
Regexp.new/compile
%記法
%r!STRING!
主なメソッド
Object#=~
:マッチしたらtrue、マッチしなければfalseを返す
Regexp#match?
:
組み込み変数/特殊変数の値を変更しないため、高速に動作する
Object#!~
:マッチしなければtrue、マッチしたらfalseを返す
Regexp#match
:引数で渡された文字列にマッチした場合は
MatchData
を返す
条件分岐の条件式で使い、ローカル変数への代入も同時に行うイディオムがある
代入してからifで存在を確認、をまとめて書く
【統一】分岐の条件部分で=による代入の結果を値として使う場合は、条件全体をかっこ( )で囲むこと
Regexp.last_match
:引数の値が0の場合はマッチした文字列全体、1以上 (
nth
) の場合は nth 番目のキャプチャでマッチした文字列を返す
String#scan
:引数で渡された正規表現にマッチした文字列を配列にして返す
String#[]/
slice
:引数で渡された正規表現にマッチした部分の文字列を返す
String#split
:引数で渡された正規表現にマッチした文字を区切り文字として、分割した文字列の配列を返す
String#gsub
:第1引数で渡された正規表現にマッチした文字列を、第2引数で渡された文字列で置き換える
その他
case文のwhen節で、正規表現オブジェクトを使うことができる
関連URL
正規表現をチェックするツール
Rubular: a Ruby regular expression editor
初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」 - Qiita
初心者歓迎!手と目で覚える正規表現入門・その2「微妙な違いを許容しつつ置換しよう」 - Qiita
初心者歓迎!手と目で覚える正規表現入門・その3「空白文字を自由自在に操ろう」 - Qiita
初心者歓迎!手と目で覚える正規表現入門・その4(最終回)「中級者テクニックをマスターしよう」 - Qiita
#プロを目指す人のためのRuby入門
#Rubyを学ぶ
#正規表現を学ぶ