プログラミングの記録

Who Wrote Holden Caulfield?

正規表現。[], 文字クラス。(Ruby: =~, Array, each, ヒアドキュメント)

概要

多くの文字のどれかにマッチする正規表現を作成する。

ここでは、英単語の calendar を対象にする。

Ruby コード

re_character_classes1.rb

#!/usr/bin/env ruby


def re_c_c1_heredoc
  <<~EOL
  多くの文字のどれかに対するマッチ。
  calendar のミススペルとしてよくあるすべての綴りにマッチするような 1 個の正規表現。
  具体的には母音の位置で、a, e のどちらが使われていても拾い出す正規表現。

  EOL
end

puts re_c_c1_heredoc


puts '-'*79


def re_c_c1
  re = /c[ae]l[ae]nd[ae]r/

  my_string_arry = ['calandar', 'calendar', 'calander',
                    'celender', 'celandar', 'celendar']

  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_c1

出力

$ ruby re_character_classes1.rb
多くの文字のどれかに対するマッチ。
calendar のミススペルとしてよくあるすべての綴りにマッチするような 1 個の正規表現。
具体的には母音の位置で、a, e のどちらが使われていても拾い出す正規表現。

-------------------------------------------------------------------------------
calandar
マッチしました。

calendar
マッチしました。

calander
マッチしました。

celender
マッチしました。

celandar
マッチしました。

celendar
マッチしました。

参考文献

正規表現クックブック

正規表現クックブック

広告を非表示にする