プログラミングの記録

Who Wrote Holden Caulfield?

正規表現。文字クラス、メタ文字、ドット (またはポイント)。 (Regular Expressions: dot, ., Ruby: each, =~)

概要

メタ文字の ドット . を使用して正規表現を作成する。

ここでは、 2018/05/07 等にマッチする正規表現 (数値ではない)。

Ruby コード

re_dot1.rb

#!/usr/bin/env ruby


def re_dot1_heredoc
  <<~EOL
  文字クラス。
  メタ文字。
  ドット (またポイント)。

  リストに含まれている任意の文字にマッチする正規表現。
  ここでは、2018/05/072018-05-07 にマッチする正規表現 (数値ではない)。

  EOL
end

puts re_dot1_heredoc


puts '-'*79


def re_dot1
  # 注意: 曖昧な検索になる。例えば、'2018805 0701' にもマッチしてしまう。
  re = /2018.05.07/

  my_string_arry = ['2018/05/07', '2018-05-07', '2018.05.07', '2018805 0701']

  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_dot1

出力

$ ruby re_dot1.rb
文字クラス。
メタ文字。
ドット (またポイント)。

リストに含まれている任意の文字にマッチする正規表現。
ここでは、2018/05/07 や 2018-05-07 にマッチする正規表現 (数値ではない)。

-------------------------------------------------------------------------------
2018/05/07
マッチしました。

2018-05-07
マッチしました。

2018.05.07
マッチしました。

2018805 0701
マッチしました。

参考文献

詳説 正規表現 第3版

詳説 正規表現 第3版