読者です 読者をやめる 読者になる 読者になる

パターンマッチと正規表現

Ruby

「◯◯という文字列を含んだ行を表示したい」「◯◯と××の間に書かれた文字列を抜き出したい」など特定の文字列があるパターンに当てはまるか(マッチング)しているかを調べる

正規表現オブジェクトを作る公式:

/パターン/=~マッチングしたい文字列

マッチングが成功したときはマッチした部分の位置を返します。文字の位置は配列のインデックス同様 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