match?(regexp) -> Integer | 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
使用例
require 'strscan' s = StringScanner.new('test string') p s.match?(/\w+/) #=> 4 p s.match?(/\w+/) #=> 4 p s.match?(/\s+/) #=> nil