Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > strscanライブラリ > StringScannerクラス > match?

instance method StringScanner#match?

match?(regexp) -> Fixnum | nil[permalink][rdoc]

スキャンポインタの地点だけで regexp と文字列のマッチを試します。 マッチしたら、スキャンポインタは進めずにマッチした 部分文字列の長さを返します。マッチしなかったら nil を 返します。

マッチしたサイズは文字単位でなくバイト単位となります。

require 'strscan'
def case1(encode)
  utf8 = "\u{308B 3073 3044}"
  s = StringScanner.new(utf8.encode(encode))
  s.match?(/#{"\u{308B}".encode(encode)}/)
end

p case1("EUC-JP")     #=> 2
[PARAM] regexp:
マッチに用いる正規表現を指定します。

使用例

s = StringScanner.new('test string')
p s.match?(/\w+/)   #=> 4
p s.match?(/\w+/)   #=> 4
p s.match?(/\s+/)   #=> nil