Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > strscanライブラリ > 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
使用例
s = StringScanner.new('test string')
p s.match?(/\w+/) #=> 4
p s.match?(/\w+/) #=> 4
p s.match?(/\s+/) #=> nil