- Home ›
- Ruby入門 ›
- Ruby正規表現の使い方
%rを使ったパターンの定義
正規表現オブジェクトを作成する時に %r を使って定義することもできます。パターンの中に「/」が多く含まれる場合に便利です。ここでは Ruby の正規表現で %r を使ってパターンの定義を行う方法について解説します。
(Last modified: )
%rを使ったパターンの定義
正規表現オブジェクトを作成する時に /パターン/
の形式で作成が可能でしたが、パターンの中にスラッシュ /
が多く含まれる場合には /
を都度エスケープする必要が出てきます。
このような場合に正規表現オブジェクトの別の作成方法が用意されています。書式は次の通りです。
%r{パターン}
%r
で始まり、対になった区切り文字で文字の集合を囲うことで文字列を作成できます。区切り文字は {}
の他に次のようなものが使用できます。
%r{パターン} %r[パターン] %r(パターン) %r<パターン>
また上記以外にも英数字とスペースを除いた文字も使用できます。この場合は同じ文字を使って囲います。
%r|パターン| %r!パターン! %r*パターン*
この形式で正規表現オブジェクトを作成した場合には、パターン内に /
が含まれていてもエスケープは不要ですが、逆に区切り文字に使用した文字がパターン内で現れる場合にはエスケープが必要となります。通常はパターン内で使用されない区切り文字を使ってパターンを囲います。
では簡単なプログラムで確認してみます。
# encoding: UTF-8 def check(str) print(str + " は img/ に") if %r!img/! =~ str then puts("マッチします") else puts("マッチしません") end end check("img/a.png") check("/usr/local/bin") check("book/img/local")
下記のように実行して下さい。
-- --
Ruby の正規表現で %r を使ってパターンの定義を行う方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。