るりまサーチ

最速Rubyリファレンスマニュアル検索!
84件ヒット [1-84件を表示] (0.145秒)
トップページ > 種類:インスタンスメソッド[x] > クエリ:r[x] > クエリ:ruby[x] > クエリ:end[x] > クラス:StringScanner[x]

別のキーワード

  1. _builtin to_r
  2. open3 pipeline_r
  3. matrix elements_to_r
  4. fileutils rm_r
  5. fileutils cp_r

ライブラリ

キーワード

検索結果

StringScanner#pointer=(n) (6114.0)

スキャンポインタのインデックスを n にセットします。

...ます。

@param n 整数で、バイト単位で指定します。
負数を指定すると文字列の末尾からのオフセットとして扱います。
@raise RangeError マッチ対象の文字列の長さを超える値を指定すると発生します。

@return n を返しま...
.../emlist[例][ruby]{
r
equire 'strscan'

s = StringScanner.new('test string')
p s.scan(/\w+/) # => "test"
p s.pos = 1 # => 1
p s.scan(/\w+/) # => "est"
p s.pos = 7 # => 7
p s.scan(/\w+/) # => "ring"

begin
s.pos = 20
r
escue RangeError => err
puts err #=> index out of range
end

p s.pos = -4...
...# => -4
p s.scan(/\w+/) # => "ring"
//}...

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

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

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

マッチしたサイズは文字単...
...][ruby]{
r
equire '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]{
r
equire...
...'strscan'

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

StringScanner#matched_size -> Integer | nil (3120.0)

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

...ruby]{
r
equire 'strscan'

def run(encode)
utf8 = "\u{308B 3073 3044}" # るびい
s = StringScanner.new(utf8.encode(encode))
s.scan(/#{"\u{308B}".encode(encode)}/)
s.matched_size
end


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

//}

//emlist[例][ruby]{
r
equir...
...e '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#peek(bytes) -> String (3120.0)

スキャンポインタから長さ bytes バイト分だけ文字列を返します。

...][ruby]{
r
equire 'strscan'
s = StringScanner.new('test string')
s.peek(4) # => "test"
//}

また、このメソッドを実行してもスキャンポインタは移動しません。

StringScanner
#peep は将来のバージョンでは削除される予定です。
代わりに StringScanner#pe...
...ek を使ってください。

@param bytes 0 以上の整数を指定します。
ただし、スキャン対象の文字列の長さを超える分は無視されます。
bytes が 0 のとき、またはスキャンポインタが文字列の末尾を
...
...@raise ArgumentError bytes に負数を与えると発生します。

//emlist[例][ruby]{
r
equire 'strscan'

s = StringScanner.new('test string')
p s.peek(4) # => "test"
p s.peek(20) # => "test string"
p s.peek(0) # => ""
begin
s.peek(-1)
r
escue ArgumentError => err
puts err # neg...

StringScanner#peep(bytes) -> String (3120.0)

スキャンポインタから長さ bytes バイト分だけ文字列を返します。

...][ruby]{
r
equire 'strscan'
s = StringScanner.new('test string')
s.peek(4) # => "test"
//}

また、このメソッドを実行してもスキャンポインタは移動しません。

StringScanner
#peep は将来のバージョンでは削除される予定です。
代わりに StringScanner#pe...
...ek を使ってください。

@param bytes 0 以上の整数を指定します。
ただし、スキャン対象の文字列の長さを超える分は無視されます。
bytes が 0 のとき、またはスキャンポインタが文字列の末尾を
...
...@raise ArgumentError bytes に負数を与えると発生します。

//emlist[例][ruby]{
r
equire 'strscan'

s = StringScanner.new('test string')
p s.peek(4) # => "test"
p s.peek(20) # => "test string"
p s.peek(0) # => ""
begin
s.peek(-1)
r
escue ArgumentError => err
puts err # neg...

絞り込み条件を変える

StringScanner#unscan -> self (3032.0)

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

...[ruby]{
r
equire 'strscan'

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


@return selfを返します。

このメソッドでポインタを戻せるのは 1 回分だけです。
2 回分以上戻そうとしたときは例外 StringScanner...
...::Error が発生します。
また、まだマッチを一度も行っていないときや、
前回のマッチが失敗していたときも例外 StringScanner::Error が発生します。

@raise StringScanner::Error 2 回分以上戻そうとした時や、
まだ...
...//emlist[例][ruby]{
r
equire 'strscan'

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

p s.scan(/\w+/)...

StringScanner#pos=(n) (3014.0)

スキャンポインタのインデックスを n にセットします。

...ます。

@param n 整数で、バイト単位で指定します。
負数を指定すると文字列の末尾からのオフセットとして扱います。
@raise RangeError マッチ対象の文字列の長さを超える値を指定すると発生します。

@return n を返しま...
.../emlist[例][ruby]{
r
equire 'strscan'

s = StringScanner.new('test string')
p s.scan(/\w+/) # => "test"
p s.pos = 1 # => 1
p s.scan(/\w+/) # => "est"
p s.pos = 7 # => 7
p s.scan(/\w+/) # => "ring"

begin
s.pos = 20
r
escue RangeError => err
puts err #=> index out of range
end

p s.pos = -4...
...# => -4
p s.scan(/\w+/) # => "ring"
//}...