- Home ›
- Ruby入門 ›
- Ruby正規表現の使い方
直前の文字が0回または1回現れる文字にマッチする(?)
メタ文字の1つであるクエスチョン(?)をパターンの中に記述すると、「?」の直前にある文字が 0 回か 1 回現れた文字列にマッチします。 0 回でも可なので直前の文字が存在しなくてもマッチします。ここでは Ruby の正規表現で直前の文字に 0 回か 1 回マッチするメタ文字「?」の使い方について解説します。
(Last modified: )
目次
直前の文字を0回か1回
メタ文字 ?
は直前の文字が 0 回か 1 回現れた文字列にマッチします。例えば次のように使用します。
/Go?gle/
上記の場合、クエスチョン(?)は直前の文字(今回は「o」)に 0 回か 1 回現れたものにマッチします。(直前の文字が無い場合は、空文字にマッチしていることになります)。
マッチするもの:
Ggle Gogle
マッチしないもの:
Ggle Google Gooogle Gpgle
メタ文字のプラス(+)やアスタリスク(*)よりも、より限定的なものとなります。
サンプルコード
では簡単なプログラムで確認してみます。
# encoding: UTF-8 def check(str) if /Go?gle/ =~ str then puts("○" + str) else puts("×" + str) end end puts("「Go?gle」にマッチするかどうか") check("Ggle") check("Gogle") check("Google") check("Goooooogle") check("Gmgle") check("Gomogle")
下記のように実行して下さい。
-- --
Ruby の正規表現で直前の文字に 0 回か 1 回マッチするメタ文字「?」の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。