- Home ›
- Ruby入門 ›
- Ruby正規表現の使い方
行の末尾にマッチする($)
指定したパターンが行の末尾にある場合だけマッチするようにするにはメタ文字の1つである「$」を使います。「$」自身は特定の文字にマッチするものではなく行の末尾の位置にマッチします。ここでは Ruby の正規表現で行の末尾にマッチするメタ文字の「$」の使い方について解説します。
(Last modified: )
目次
行の末尾にマッチする
メタ文字の $
は行の末尾にマッチします。書式は次の通りです。
/パターン$/
具体的な例で考えてみます。「abcdef」と「defabc」と言う2つの文字列に対してパターンを /abc/
」と指定した場合にはどちらの文字列にも「abc」は含まれているため、どちらもマッチします。
○ abcdef ○ defabc
これに対してパターンを /abc$/
と記述した場合は、行の末尾の位置に「abc」がある場合だけマッチします。よって「abcdef」はマッチしませんが「defabc」はマッチします。
× abcdef ○ defabc
具体的には次のように記述します。
str = "defabc" if /abc$/ =~ str then puts("マッチします") else puts("マッチしません") end
なお Ruby
においてはメタ文字 $
は文字列の末尾だけではなく行の末尾にマッチします。つまり1つの文字列の中に改行が含まれていた場合、改行の直前にもマッチします。
× abcdef ○ abc\ndef
他のプログラミング言語の場合にはメタ文字 $
は行の末尾ではなく文字列の末尾にだけマッチする場合がありますので注意して下さい。
では簡単なプログラムで確認してみます。
# encoding: UTF-8 def check(str) print(str + " は abc$ に") if /abc$/ =~ str then puts("マッチします") else puts("マッチしません") end end check("abcdef") check("defabc") check("abc\ndef") check("def\nabc")
下記のように実行して下さい。
-- --
Ruby の正規表現で行の末尾にマッチするメタ文字の「$」の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。