プログラミングの記録

Who Wrote Holden Caulfield?

正規表現。エスケープ。バックスラッシュ。\\ (Ruby: each, =~)

概要

通常ではメタ文字と解釈される文字をエスケープさせ、マッチする正規表現を作成する。

ここでは、() をエスケープさせる。

re = /\(\)/ などと記述する。

Ruby コード

re_escape1.rb

#!/usr/bin/env ruby


def re_escape1_heredoc
  <<~EOL
  エスケープ
  通常ではメタ文字と解釈されるような文字にマッチさせる正規表現。
  ここでは、() をエスケープさせる。

  EOL
end

puts re_escape1_heredoc


puts '-'*79


def re_escape1
  re = /\([a-zA-Z]+\)/

  my_string_arry = ['a', '(b)', '(abc)', 'abc', 'ABC', '(ABC)']

  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_escape1

出力

$ ruby re_escape1.rb
エスケープ
通常ではメタ文字と解釈されるような文字にマッチさせる正規表現。
ここでは、() をエスケープさせる。

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

(b)
マッチしました。

(abc)
マッチしました。

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

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

(ABC)
マッチしました。

参考文献

詳説 正規表現 第3版

詳説 正規表現 第3版