integer_at(index, base = 10) -> Integer | nilRuby 4.1 から[permalink][rdoc][edit]integer_at(name, base = 10) -> Integer | nil-
マッチした部分文字列を整数に変換して返します。
$~.integer_at(n)は$n&.to_iと同じです。整数に変換せずに部分文字列をそのまま得るにはMatchData#[]を使います。部分文字列がマッチしていない場合は
nilを返します。文字列は既定では 10 進数として変換されます。
- [PARAM]
index: - 変換する部分文字列のインデックスを整数で指定します。
- [PARAM]
name: - 変換する部分文字列を名前付きキャプチャの名前(シンボルまたは文字列)で指定します。
- [PARAM]
base: -
変換に使う基数を整数で指定します。省略した場合は 10 進数として変換します。
0を指定すると、String#to_i と同様に文字列先頭の0x・0b・0などのプレフィックスから基数を判定します。 - [EXCEPTION]
IndexError: -
nameが正規表現に存在しない名前付きキャプチャの名前の場合に発生します。
m = /(\d{4})(\d{2})(\d{2})/.match("20260308") p m.integer_at(0) # => 20260308 p m.integer_at(1) # => 2026 p m.integer_at(2) # => 3 p m.integer_at(3) # => 8 m = /(?<y>\d{4})(?<m>\d{2})(?<d>\d{2})/.match("20260308") p m.integer_at("y") # => 2026 p m.integer_at("m") # => 3 p m.integer_at("d") # => 8 re = /(\d+)?/ p re.match("123").integer_at(1) # => 123 p re.match("abc").integer_at(1) # => nil p /\d+/.match("011").integer_at(0) # => 11 p /\d+/.match("011").integer_at(0, 12) # => 13 p /\d+/.match("011").integer_at(0, 0) # => 9[SEE_ALSO] String#to_i
- [PARAM]