大文字と小文字を区別せずにマッチを行う(/i修飾子)

広告

「/i修飾子」を指定すると大文字と小文字を区別せずにマッチを行います。書式は次の通りです。

/パターン/i

具体的な例で考えてみます。

/Test/

上記の正規表現にマッチする文字列とマッチしない文字列は次の通りです。

○ Test
× test
× TEST
× tesT

これに対して「/i修飾子」を付けてみます。

/Test/i

上記の正規表現にマッチする文字列とマッチしない文字列は次の通りです。

○ Test
○ test
○ TEST
○ tesT

このように「/i修飾子」を付けることで大文字小文字が区別されなくなります。

サンプルプログラム

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

test2-1.rb

#! ruby -Ku
require "kconv"

def check(str)
  if /color is (red|green)/i =~ str then
    print(Kconv.tosjis("○") + str + "(" + $& + ")¥n")
  else
    print(Kconv.tosjis("×") + str + "¥n")
  end
end

print(Kconv.tosjis("/color is (red|green)/i にマッチするかどうか¥n¥n"))

check("Border color is Red")
check("Frame Color is GREEN")
check("Background Color Is green")

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

大文字と小文字を区別せずにマッチを行う(/i修飾子)

( Written by Tatsuo Ikura )