「◯◯という文字列を含んだ行を表示したい」「◯◯と××の間に書かれた文字列を抜き出したい」など特定の文字列があるパターンに当てはまるか(マッチング)しているかを調べる
正規表現オブジェクトを作る公式:
/パターン/=~マッチングしたい文字列
マッチングが成功したときはマッチした部分の位置を返します。文字の位置は配列のインデックス同様 0 から数えます(先頭の文字が0)
実行
p /Ruby/=~ 'Ruby' p /スライム/=~ 'メタルスライム' p /メタルスライム/=~ 'スライム' p /Ruby/=~ 'He is Ruby Hacker.' p /He is Ruby Hacker/ =~ 'Ruby' p /Ruby/ =~ 'ruby' p /Ruby/ =~ 'RUBY' p /Ruby/i =~ 'ruby' p /Ruby/i =~ 'RUBY' p /Ruby/i =~ 'rUbY' #正規表現 右側の//i →「i」を書くと大文字/小文字ヲ区別せずにマッチングをおこなう
- p /スライム/=~ 'メタルスライム'
- 'スライム'と'メタルスライム'がなぜ「9」なのか
- → バイト数で位置を数えているようですね。半角英数字と同じにできない
- マッチングが失敗したとき => nilを返す
moomin:ProgrammingRuby tomomi$ ruby re.rb 0 9 nil 6 nil nil nil 0 0 0