プログラミングの記録

Who Wrote Holden Caulfield?

正規表現。量指定子。繰り返しメタ文字。*, star, スター、asterisk, アスタリスク、アステリスク (Ruby: each, =~)

概要

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

マッチ試行の上限は無制限で、必須ではない (いくつでもいい)。

Ruby コード

re_star1.rb

#!/usr/bin/env ruby


def re_star1_heredoc
  <<~EOL
  量指定子
  メタ文字
  *, star, スター、asterisk, アスタリスク、アステリスク

  直前の要素の 0 回以上の繰り返しの正規表現。
  マッチ試行の上限は無制限で、必須ではない (いくつでもいい)。

  /xxx */ などと記述する。

  EOL
end

puts re_star1_heredoc


puts '-'*79


def re_star1
  # ここでは、* の直前に空白を 1つ入れておく。
  re = /<h[1-6] *>/

  # 順に: 空白なし、1 つの空白、2 つの空白、...、6 つの空白。
  my_string_arry = ['<h1>', '<h2 >', '<h3  >', '<h4    >', '<h5     >', '<h6      >']

  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_star1

出力

$ ruby re_star1.rb
量指定子
メタ文字
*, star, スター、asterisk, アスタリスク、アステリスク

直前の要素の 0 回以上の繰り返しの正規表現。
マッチ試行の上限は無制限で、必須ではない (いくつでもいい)。

/xxx */ などと記述する。

-------------------------------------------------------------------------------
<h1>
マッチしました。

<h2 >
マッチしました。

<h3  >
マッチしました。

<h4    >
マッチしました。

<h5     >
マッチしました。

<h6      >
マッチしました。

参考文献

詳説 正規表現 第3版

詳説 正規表現 第3版