るりまサーチ

最速Rubyリファレンスマニュアル検索!
48件ヒット [1-48件を表示] (0.009秒)
トップページ > クラス:String[x] > クエリ:scan[x]

別のキーワード

  1. string scan
  2. _builtin scan
  3. c scan
  4. ruby scan

ライブラリ

キーワード

検索結果

String#scan(pattern) -> [String] | [[String]] (18136.0)

self に対して pattern を繰り返しマッチし、 マッチした部分文字列の配列を返します。

...r".scan(/../) # => ["fo", "ob", "ar"]
p "foobar".scan("o") # => ["o", "o"]
p "foobarbazfoobarbaz".scan(/ba./) # => ["bar", "baz", "bar", "baz"]

p "foobar".scan(/(.)/)
# => [["f"], ["o"], ["o"], ["b"], ["a"], ["r"]]

p "foobarbazfoobarbaz".scan(/...

String#scan(pattern) {|s| ... } -> self (18126.0)

pattern がマッチした部分文字列をブロックに渡して実行します。 pattern が正規表現で括弧を含む場合は、 括弧で括られたパターンにマッチした文字列の配列を渡します。

..."foobarbazfoobarbaz".scan(/ba./) {|s| p s }
# => "bar"
# "baz"
# "baz"
# "baz"

"foobarbazfoobarbaz".scan("ba") {|s| p s }
# => "ba"
# "ba"
# "ba"
# "ba"

"foobarbazfoobarbaz".scan(/(ba)(.)/) {|s| p s }...

String#scanf(format) -> Array (6101.0)

ブロックを指定しない場合、見つかった文字列を format に従って変 換し、そのオブジェクトの配列を返します。 format で指定した文字列が見つからない場合は空の配列を 生成して返します。

...列が見つからない場合は空の配列を
生成して返します。

require 'scanf'
str = "123 abc 456 def 789 ghi"
p str.scanf("%d%s") #=> [123, "abc"]

ブロックを指定した場合は scanf を継続して実行し、順次
見つかった文字列を変換したオブジェ...
...re 'scanf'
str = "123 0x45 678 0x90"
p str.scanf("%d%x"){|n, s| [n, s]}
#=> [[123, 69], [678, 144]]

formatに完全にマッチしていなくても、部分的にマッチしていれば、
ブロックは実行されます。

require 'scanf'
str = "123 abc 456 def"
ret = str.scanf("%...
...を文字列で指定します。
詳細は、m:String#scanf#format を参照してください。

使用例:
require 'scanf'
str = "123 abc 456 def 789 ghi"
p str.scanf("%d%s") #=> [123, "abc"]

====[a:format] scanfフォーマット文字列

文字 '%' と(s,d のような)...

String#scanf(format) {|*ary| ...} -> Array (6101.0)

ブロックを指定しない場合、見つかった文字列を format に従って変 換し、そのオブジェクトの配列を返します。 format で指定した文字列が見つからない場合は空の配列を 生成して返します。

...列が見つからない場合は空の配列を
生成して返します。

require 'scanf'
str = "123 abc 456 def 789 ghi"
p str.scanf("%d%s") #=> [123, "abc"]

ブロックを指定した場合は scanf を継続して実行し、順次
見つかった文字列を変換したオブジェ...
...re 'scanf'
str = "123 0x45 678 0x90"
p str.scanf("%d%x"){|n, s| [n, s]}
#=> [[123, 69], [678, 144]]

formatに完全にマッチしていなくても、部分的にマッチしていれば、
ブロックは実行されます。

require 'scanf'
str = "123 abc 456 def"
ret = str.scanf("%...
...を文字列で指定します。
詳細は、m:String#scanf#format を参照してください。

使用例:
require 'scanf'
str = "123 abc 456 def 789 ghi"
p str.scanf("%d%s") #=> [123, "abc"]

====[a:format] scanfフォーマット文字列

文字 '%' と(s,d のような)...

String#gsub(pattern) -> Enumerator (13.0)

文字列中で pattern にマッチした部分を順番にブロックに渡し、 その実行結果で置き換えた文字列を生成して返します。 ブロックなしの場合と違い、ブロックの中からは 組み込み変数 $1, $2, $3, ... を問題なく参照できます。

...み変数 $1, $2, $3, ... を問題なく参照できます。

なお、ブロック付きの gsub で文字列を置き換えない場合は[[String#scan]]
と同じ動作になります。

@param pattern 置き換える文字列のパターンを表す文字列か正規表現。...
...文字列を指定した場合は全く同じ文字列にだけマッチする
@return 新しい文字列

例:

p 'abcabc'.gsub(/[bc]/) {|s| s.upcase } #=> "aBCaBC"
p 'abcabc'.gsub(/[bc]/) { $&.upcase } #=> "aBCaBC"

@see String#sub, String#scan...

絞り込み条件を変える

String#gsub(pattern) {|matched| .... } -> String (13.0)

文字列中で pattern にマッチした部分を順番にブロックに渡し、 その実行結果で置き換えた文字列を生成して返します。 ブロックなしの場合と違い、ブロックの中からは 組み込み変数 $1, $2, $3, ... を問題なく参照できます。

...み変数 $1, $2, $3, ... を問題なく参照できます。

なお、ブロック付きの gsub で文字列を置き換えない場合は[[String#scan]]
と同じ動作になります。

@param pattern 置き換える文字列のパターンを表す文字列か正規表現。...
...文字列を指定した場合は全く同じ文字列にだけマッチする
@return 新しい文字列

例:

p 'abcabc'.gsub(/[bc]/) {|s| s.upcase } #=> "aBCaBC"
p 'abcabc'.gsub(/[bc]/) { $&.upcase } #=> "aBCaBC"

@see String#sub, String#scan...

String#gsub(pattern, hash) -> String (3.0)

文字列中の pattern にマッチした部分をキーにして hash を引いた値で置き換えます。

文字列中の pattern にマッチした部分をキーにして hash を引いた値で置き換えます。

@param pattern 置き換える文字列のパターン
@param hash 置き換える文字列を与えるハッシュ

hash = {'b'=>'B', 'c'=>'C'}
p "abcabc".gsub(/[bc]/){hash[$&]} #=> "aBCaBC"
p "abcabc".gsub(/[bc]/, hash) #=> "aBCaBC"

String#gsub(pattern, replace) -> String (3.0)

文字列中で pattern にマッチする部分全てを 文字列 replace で置き換えた文字列を生成して返します。

...実に防止し、コードの可読性を上げるには、
\& や \1 よりも下記のようにブロック付き形式の gsub を使うべきです。

p 'xbbb-xbbb'.gsub(/x(b+)/) { $1 } # => "bbb-bbb" # OK

puts '\n'.gsub(/\\/) { '\\\\' } # => \\n # OK

@see String#sub...