- Home ›
- Ruby入門 ›
- Ruby正規表現の使い方
任意の一文字にマッチする(.)
メタ文字の1つであるドット(.)をパターンの中に記述すると改行(\n)を除く任意の一文字にマッチします。ここでは Ruby の正規表現で任意の一文字にマッチするメタ文字「.」の使い方について解説します。
(Last modified: )
目次
任意の一文字にマッチする
メタ文字 .
は任意の一文字にマッチします。例えば次のように使用します。
/ab.cd/
上記の場合、ドット(.)は任意の一文字にマッチしますので「abfcd」や「ab0cd」などドット(.)が記述された位置にどんな文字が書かれている場合もマッチすることになります。
注意する点としては任意の一文字ですので必ず一文字必要です。よって「abcd」のように「ab」と「cd」の間に文字が存在しないものや、「abeecd」のように「ab」と「cd」の間に2つ以上の文字が含まれる場合はマッチしません。
マッチするもの:
abhcd ab4cd ab#cd
マッチしないもの:
abcd abppcd
メタ文字(.)はパターン内で何回でも使用することができます。
/ab..cd/
この場合は「ab」と「cd」の間に任意の二文字がある文字列にマッチします。(例:abomcdd)。
/a.b.c.d/
この場合は「a」「b」「c」「d」の各文字の間に1つずつ任意の文字がある文字列にマッチします。(例:a1b2c3d)。
なお正規表現の /m
オプション(Regexp::MULTILINE)が指定されている場合はメタ文字(.)は改行にもマッチします。オプションについてはまた別のページで解説します。
またマルチバイトを扱うことが出来る文字コードに設定してある場合はメタ文字(.)は日本語の 1 文字にマッチさせることができます。詳しくは別のページで解説します。
では簡単なプログラムで確認してみます。
# encoding: UTF-8 def check(str) if /ab.cd/ =~ str then puts("○" + str) else puts("×" + str) end end puts("「ab.cd」にマッチするかどうか") check("ab6cd") check("abycd") check("ab\tcd") check("ab\ncd") check("abcd") check("abpocd")
下記のように実行して下さい。
-- --
Ruby の正規表現で任意の一文字にマッチするメタ文字「.」の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。