Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > 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