プログラミングの記録

Who Wrote Holden Caulfield?

正規表現。大文字と小文字を区別しない。キャレット、()、縦棒 (パイプ)、スペース。(Ruby: each, =~, 正規表現 オプション i)

概要

キャレット、()、縦棒 (パイプ) を使用して正規表現を作成する。

例えばここでは、(行頭の次に)「From」か「Subject」か「Date」があり、

続いて「: 」があり、

大文字と小文字の違いも無視してマッチする正規表現 (Ruby では オプションの i を使用する)。

なお、: の後にはスペースが入る。

Ruby コード

re_caret_parentheses_bar1.rb

#!/usr/bin/env ruby


def re_c_p_b1_heredoc
  <<~EOL
  キャレット、()、縦棒 (パイプ)。
  (行頭の次に)「From」か「Subject」か「Date」があり、続いて「: 」があり、
  大文字と小文字の違いも無視してマッチする正規表現。
  なお、: の後にはスペースが入る。

  EOL
end

puts re_c_p_b1_heredoc


puts '-'*79


def re_c_p_b1
  re = /^(From|Subject|Date): /i

  my_string_arry = ['From: ', 'Subject: ', 'Date: ',
                    'from: ', 'subject: ', 'date: ',
                    'fRom: ', 'suBject: ', 'datE: '] # 組み合わせが多すぎるのでここまでにしておく。

  my_string_arry.each do |my_str|
    if my_str =~ re
      puts "#{my_str}\nマッチしました。\n\n"
    else
      puts "#{my_str}\nマッチしませんでした。\n\n"
    end
  end
end

re_c_p_b1

出力

$ ruby re_caret_parentheses_bar1.rb
キャレット、()、縦棒 (パイプ)。
(行頭の次に)「From」か「Subject」か「Date」があり、続いて「: 」があり、
大文字と小文字の違いも無視してマッチする正規表現。
なお、: の後にはスペースが入る。

-------------------------------------------------------------------------------
From: 
マッチしました。

Subject: 
マッチしました。

Date: 
マッチしました。

from: 
マッチしました。

subject: 
マッチしました。

date: 
マッチしました。

fRom: 
マッチしました。

suBject: 
マッチしました。

datE: 
マッチしました。

参考文献

詳説 正規表現 第3版

詳説 正規表現 第3版