先頭と末尾を合わせて指定

広告

パターンの中にはメタ文字は単独で使用するだけではなく複数のメタ文字を併用して使用することが出来ます。そこで行の先頭にマッチする「^」と行の末尾にマッチする「$」を合わせて使ってみます。

/^パターン$/

メタ文字を除くパターン部分が文字列だった場合、指定された文字列が行の先頭と末尾にマッチすることになりますので、この場合はパターン部分で指定した文字列と完全に一致する場合にだけマッチすることになります。

よってパターンを「/^abc$/」と記述した場合は、「abc」だけにマッチし、「abcdef」や「defabc」にはマッチしません。

abc
× abcdef
× defabc

具体的には次のように記述します。

str = "abc"

if /^abc$/ =~ str then
  print("マッチします¥n")
else
  print("マッチしません¥n")
end

サンプルプログラム

では簡単なプログラムで確認して見ます。

test5-1.rb

#! ruby -Ku
require "kconv"

def check(str)
  print(Kconv.tosjis(str + " は ^abc$ に"))

  if /^abc$/ =~ str then
    print(Kconv.tosjis("マッチします¥n"))
  else
    print(Kconv.tosjis("マッチしません¥n"))
  end
end

check("abc")
check("abcdef")
check("defabc")

上記のプログラムを「test5-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

先頭と末尾を合わせて指定

( Written by Tatsuo Ikura )