要約
正規表現のマッチが、設定された時間の上限を超えた場合に発生します。
上限は Regexp.timeout= でプロセス全体に対して、あるいは Regexp.new の timeout キーワード引数で正規表現ごとに設定します。
Regexp.timeout = 0.5
# バックトラックが多く発生し、線形時間で処理できない正規表現の例
/^((a|a)+)\1$/ =~ ("a" * 30 + "x") # ~> Regexp::TimeoutError
[SEE_ALSO] Regexp.timeout=, Regexp#timeout
目次
継承しているメソッド
- Exceptionから継承している特異メソッド
- Exceptionから継承しているメソッド