- Home ›
- Ruby入門 ›
- Ruby正規表現の使い方
パターンの中の空白やコメントを無視する(/x修飾子)
パターンで「/x修飾子」を指定すると、パターンの中の空白やコメントを無視してマッチが行われます。ここでは Ruby の正規表現で利用可能な「/x修飾子」の使い方について解説します。
(Last modified: )
パターンの中の空白やコメントを無視する
/x
修飾子を指定するとパターン内の空白が無視されます。書式は次の通りです。
/パターン/x
具体的な例で考えてみます。パターン内の空白が無視されるというのはどういうことかというと、パターン内に空白や改行を追加してもパターンに影響が無いということになります。
/(red|blue)(point|line)/x /(red|blue) (point|line)/x /(red|blue) (point|line)/x
上記はどのパターンも同じ文字列にマッチします。パターン内の空白や改行は無視されるためです。
また /x
修飾子では空白が無視されると同時に #
から行末までが無視されます。この事を利用して複雑なパターンを改行し、各行毎にコメントを記述することが可能になります。
/ (red|blue) # 赤 or 青 (point|line) # 点 or 線 /x
#
から行末までは無視されるため、 #
のあとにコメントなどを記述することが可能になります。
なお、 /x
修飾子を付けると空白と #
が無視されてしまうので、空白と #
をパターン内で使用する場合には \
を使ってエスケープする必要があります。
/\ /x /\#/x
では簡単なプログラムで確認してみます。
# encoding: UTF-8 def check(str) reg = /( ( \d #任意の数字 + #1回以上繰り返し ) ( yen #yenで終わる ) ) /x if reg =~ str then puts("○" + str + "(" + $1 + ")") else puts("×" + str) end end puts("/((\d+)(yen))/x にマッチするかどうか") check("Watch 3500yen") check("Apple 280yen") check("1350year")
下記のように実行して下さい。
-- --
Ruby の正規表現で利用可能な「/x修飾子」の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。