プログラミングの記録

Who Wrote Holden Caulfield?

正規表現。量指定子。繰り返しメタ文字。+, plus, プラス。(Ruby: each, =~)

概要

+ で直前の要素の 1 回以上の繰り返しの正規表現を作成する。

マッチ試行の上限は無制限だが、少なくとも、1 回はマッチしなければ不成功となる。

Ruby コード

re_plus1.rb

#!/usr/bin/env ruby


def re_plus1_heredoc
  <<~EOL
  量指定子
  メタ文字
  +, plus, プラス

  直前の要素の 1 回以上の繰り返しの正規表現。
  マッチ試行の上限は無制限。
  ただし、少なくとも、1 回はマッチしなければ不成功。
  /xxx +/ などと記述する。

  EOL
end

puts re_plus1_heredoc


puts '-'*79


def re_plus1
  # + の直前に空白を 1つ入れておく。
  re = /Hi! +/

  # 順に、空白なし (これはマッチしない)、1 つの空白、2 つの空白、3 つの空白。
  my_string_arry = ['Hi', 'Hi! ', 'Hi!  ', 'Hi!   ']

  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_plus1

出力

$ ruby re_plus1.rb
量指定子
メタ文字
+, plus, プラス

直前の要素の 1 回以上の繰り返しの正規表現。
マッチ試行の上限は無制限。
ただし、少なくとも、1 回はマッチしなければ不成功。
/xxx +/ などと記述する。

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

Hi! 
マッチしました。

Hi!  
マッチしました。

Hi!   
マッチしました。

参考文献

詳説 正規表現 第3版

詳説 正規表現 第3版