るりまサーチ

最速Rubyリファレンスマニュアル検索!
606件ヒット [1-100件を表示] (0.114秒)

別のキーワード

  1. openssl t61string
  2. asn1 t61string
  3. t61string new
  4. matrix t
  5. fiddle align_ssize_t

ライブラリ

クラス

キーワード

検索結果

<< 1 2 3 ... > >>

StringScanner (50322.0)

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

...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? #=> false

p s.scan(/\s+/) #=> " "
p s.scan(/\w+/) #=> "an"
p s.scan(/\s+/) #=> " "
p s.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
オブジェクトはスキャンする文字列と「スキャンポインタ」のセットです。
スキャンポインタとはスキャンしおわったところを示すインデックスのことです。
オブジェクト作成直後...

StringScanner#scan(regexp) -> String | nil (45237.0)

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

...す。

@param regexp マッチに用いる正規表現を指定します。

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

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

StringScanner#scan_until(regexp) -> String | nil (36213.0)

regexp で指定された正規表現とマッチするまで文字列をスキャンします。 マッチに成功したらスキャンポインタを進めて、 スキャン開始位置からマッチ部分の末尾までの部分文字列を返します。 マッチに失敗したら nil を返します。

...を返します。

@param regexp マッチに用いる正規表現を指定します。

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

s = StringScanner.new('test string')
s.scan_until(/str/) # => "test str"
s.matched # => "str"
s.pos # => 8
s.pre_match # => "test "
//}...

StringScanner#scan_full(regexp, s, f) -> object (33321.0)

スキャンポインタの位置から regexp と文字列のマッチを試します。

...、s と f の値によって以下のように動作します。

* s が true ならばスキャンポインタを進めます。
* s が false ならばスキャンポインタを進めません。
* f が true ならばマッチした部分文字列を返します。
* f が fals...
...す。

* scan_full(regexp, true, true) は StringScanner#scan と同等。
* scan_full(regexp, true, false) は StringScanner#skip と同等。
* scan_full(regexp, false, true) は StringScanner#check と同等。
* scan_full(regexp, false, false) は StringScanner#match? と同等...
...am s true ならばスキャンポインタを進めます。
false ならばスキャンポインタを進めません。

@param f true ならばマッチした部分文字列を返します。
false ならばマッチした部分文字列の長さを返します。

//emlist[例...

StringScanner#string -> String (33236.0)

スキャン対象にしている文字列を返します。

...t[例][ruby]{
require 'strscan'

s = StringScanner.new('test string')
s.string # => "test string"
//}

返り値は freeze されていません。

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

s = StringScanner.new('test string')
s.string.frozen? # => false
//}

なお、このメソッドは StringScan...
...仕様に依存したコードを書かないようにしましょう。

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

str = 'test string'
s = StringScanner.new(str)
s.string == str # => true
s.string.eql?(str) # => true (将来は false になる可能性がある)
//}

また、返り値の文字列...
...かないでください。

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

str = 'test string'
s = StringScanner.new(str)
s.string.replace("0123")
s.scan(/\w+/) # => "0123" (将来は "test" が返る可能性あり)
str # => "0123" (将来は "test string" が返る可能性あり)
//}...

絞り込み条件を変える

StringScanner#terminate -> self (33224.0)

スキャンポインタを文字列末尾後まで進め、マッチ記録を捨てます。

...ます。

@return self を返します。

pos = self.string.size と同じ動作です。

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

s = StringScanner.new('test string')
s.scan(/\w+/) # => "test"
s.matched # => "test"
s.pos # => 4
s[0] # => "test"
s.terminate
s.matched # =>...
...nil
s[0] # => nil
s.pos # => 11
//}

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

StringScanner#string=(str) (33212.0)

スキャン対象の文字列を str に変更して、マッチ記録を捨てます。

...str に変更して、マッチ記録を捨てます。

@param str スキャン対象の文字列を str に変更して、マッチ記録を捨てます。

@return str を返します。

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

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

StringScanner#unscan -> self (33172.0)

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

...list[例][ruby]{
require 'strscan'

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


@return selfを返します。

このメソッドでポインタを戻せるのは 1 回分だけです。
2 回分以上戻そうとしたときは例外 Stri...
... StringScanner::Error が発生します。

@raise StringScanner::Error 2 回分以上戻そうとした時や、
まだマッチを一度も行っていない時、
前回のマッチが失敗していた時に発生します。

//emlist[例...
...uire '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+/) # => "test"
s.unscan
begin...

StringScanner#pointer -> Integer (30230.0)

現在のスキャンポインタのインデックスを返します。

...デックスを返します。

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

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

@see StringScanner#charpos...
<< 1 2 3 ... > >>