るりまサーチ

最速Rubyリファレンスマニュアル検索!
44件ヒット [1-44件を表示] (0.027秒)
トップページ > クエリ:nil[x] > クエリ:end[x] > ライブラリ:strscan[x]

別のキーワード

  1. _builtin nil?
  2. nilclass nil?
  3. object nil?
  4. _builtin nil
  5. object nil

クラス

キーワード

検索結果

StringScanner#matched_size -> Integer | nil (143.0)

前回マッチした部分文字列の長さを返します。 前回マッチに失敗していたら nil を返します。

...分文字列の長さを返します。
前回マッチに失敗していたら nil を返します。

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

//emlist[][ruby]{
require 'strscan'

def run(encode)
utf8 = "\u{308B 3073 3044}" # るびい
s = StringScanne...
...ched_size
end


p run("UTF-8") #=> 3
p run("EUC-JP") #=> 2
p run("Shift_Jis") #=> 2

//}

//emlist[例][ruby]{
require 'strscan'

s = StringScanner.new('test string')
s.matched_size # => nil
s.scan(/\w+/) # => "test"
s.matched_size # => 4
s.scan(/\w+/) # => nil
s.matched_size # => nil
//}...

StringScanner#match?(regexp) -> Integer | nil (131.0)

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

...たら nil
返します。

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

//emlist[][ruby]{
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 マッチに用いる正規表現を指定します。

//emlist[例][ruby]{
require 'strscan'

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

StringScanner (56.0)

StringScanner は文字列スキャナクラスです。 簡単に高速なスキャナを記述できます。

...述できます。

//emlist[例][ruby]{
require 'strscan'

s = StringScanner.new('This is an example string')
s.eos? #=> false

p s.scan(/\w+/) #=> "This"
p s.scan(/\w+/) #=> nil
p s.scan(/\s+/) #=> " "
p s.scan(/\s+/) #=> nil
p s.scan(/\w+/) #=> "is"
s.eos? #=> fals...
....scan(/\w+/) #=> "example"
p s.scan(/\s+/) #=> " "
p s.scan(/\w+/) #=> "string"
s.eos? #=> true

p s.scan(/\s+/) #=> nil
p s.scan(/\w+/) #=> nil
//}

StringScanner オブジェクトはスキャンする文字列と「スキャンポインタ」のセットです。
スキャン...
...ntil の動作の違い][ruby]{
require 'strscan'

def case1
s = StringScanner.new('test string')
p s.scan(/t/) #=> "t"
p s.scan(/\w+/) #=> "est"
p s.scan(/string/) #=> nil
p s.scan(/\s+/) #=> " "
p s.scan(/string/) #=> "string"
end


def case2
s = StringScanner.new('tes...

StringScanner#unscan -> self (26.0)

スキャンポインタを前回のマッチの前の位置に戻します。

...スキャンポインタを前回のマッチの前の位置に戻します。

//emlist[例][ruby]{
require 'strscan'

s = StringScanner.new('test string')
s.scan(/\w+/) # => "test"
s.unscan
s.scan(/\w+/) # => "test"
//}


@return selfを返します。

このメソッドでポインタを戻せ...
...ist[例][ruby]{
require 'strscan'

s = StringScanner.new('test string')
begin
# マッチを一度も行っていないので、例外が発生する。
s.unscan
rescue StringScanner::Error => err
puts err
# 出力例
#=> unscan failed: previous match had failed
end

p s.scan(/\w+/) # => "t...
...
#=> unscan failed: previous match had failed
end

p s.scan(/\w+/) # => "test"
p s.scan(/\w+/) # => nil
begin
# 前回のマッチが失敗しているので、例外が発生する。
s.unscan
rescue => err
puts err
# 出力例
#=> unscan failed: previous match had failed
end

//}...