timeout=(seconds)Ruby 3.2 から[permalink][rdoc][edit]-
正規表現のマッチにかける時間の上限を秒数で設定します。
nil を指定すると上限を設定しない状態に戻します。
この設定はプロセス全体に影響します。個々の正規表現ごとに設定したい場合は Regexp.new の timeout キーワード引数を使用してください。
上限を超えた場合は Regexp::TimeoutError が発生します。
- [PARAM]
seconds: - 上限の秒数を数値で指定します。nil を指定すると上限なしになります。
Regexp.timeout = 0.5 p Regexp.timeout # => 0.5 # バックトラックが多く発生し、線形時間で処理できない正規表現の例 /^((a|a)+)\1$/ =~ ("a" * 30 + "x") # ~> Regexp::TimeoutError[SEE_ALSO] Regexp.timeout, Regexp#timeout, Regexp::TimeoutError
- [PARAM]