プログラミングの記録

Who Wrote Holden Caulfield?

正規表現。否定文字クラス (Negated Character Classes)。キャレット (Regular Expressions: caret, ^, Ruby: each, =~)

概要

否定文字クラスの キャレット ^ を使用して正規表現を作成する。

ここでは、1-6 までの数字以外にマッチする正規表現 (数値ではない)。

Ruby コード

re_caret1.rb

#!/usr/bin/env ruby


def re_caret1_heredoc
  <<~EOL
  否定文字クラス
  リストに含まれていない任意の文字にマッチする正規表現。
  ここでは、1-6 までの数字以外にマッチする正規表現 (数値ではない)。

  EOL
end

puts re_caret1_heredoc


puts '-'*79


def re_caret1
  # 1-6 までの数字以外 (数値ではない)。
  re = /[^1-6]/

  my_string_arry = ['123456', '1234567', '01234567', '-1.1', '3', '7']

  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_caret1

出力

$ ruby re_caret1.rb
否定文字クラス
リストに含まれていない任意の文字にマッチする正規表現。
ここでは、1-6 までの数字以外にマッチする正規表現 (数値ではない)。

-------------------------------------------------------------------------------
123456
マッチしませんでした。

1234567
マッチしました。

01234567
マッチしました。

-1.1
マッチしました。

3
マッチしませんでした。

7
マッチしました。

参考文献

詳説 正規表現 第3版

詳説 正規表現 第3版