【戻る】 【進む】   目次        33. 組み込みクラス - Regexp

正規表現(Regexp)

正規表現 =~ 文字列
は、文字列に正規表現で表されるパターンが含まれるか否かを返す。まれればこの値は文字列の中の位置を表す整数。

正規表現.match(文字列)
も同様だが返す値はマッチング情報(MatchDataオブジェクト)。


  • 繰り返し . 任意の一文字(改行は含まない) * 直前の表現の0回以上の繰り返し + 直前の表現の1回以上の繰り返し ? 直前の表現の0回か1回の繰り返し a.*c => aで始まりcで終る文字列 ab*c => ac、abc、abbc、abbbc、… ab+c => abc、abbc、abbbc、... ab?cde?f => acdf、abcdf、acdef、abcdef
  • 文字クラス [ac-e] => a、c、d、e [^ac-e] => a、c、d、e以外の1文字 [ab][1-3] => a1、b1、a2、b2、a3、b3 \\、\.、\*、\+、\? \、.、*、+、?という文字そのもの \d 数字のクラス \w 英数字のクラス \s 空白文字(スペース、タブ、改行)のクラス \D、\W、\S それぞれの小文字版の補文字クラス
  • アンカー /^a/ =~ "abc" #=>真 /b/ =~ "abc" #=>真 /^b/ =~ "abc" #=>偽 /b$/ =~ "abc" #=>偽 /c$/ =~ "abc" #=>真 /c$/ =~ "abc\n" #=>真 /(.*):(\d+)/ =~ "foo:8080" #=> $1 = "foo", $2 = "8080"
  • 欲張り型と非欲張り型 a.*c =~ "abcabc" #=> $& == "abcabc" a.*?c =~ "abcabc" #=> $& == "abc"

  • 【戻る】 【進む】   目次        33. 組み込みクラス - Regexp