35.3.5 正規表現にまつわるトラブル

Emacsのregexp実装は他の多くの類似する実装と同じように概ね堅牢ですが、2つの問題のいずれかを引き起こすことがあります。それはマッチングが内部スタックスペースを使い果たしてエラーをシグナルしたり、完了まで長時間を要するかもしれないという問題です。以下のアドバイスはこれらの症状を軽減して、発生する問題を緩和する助けとなるでしょう。

上記アドバイスにしたがってなおregexpがスタックオーバーフローするようなら、ためらうことなくマッチングを複数の関数呼び出しで行い、それぞれの関数呼び出しではバックトラッキングが容易に含まれるように単純なregexpを使ってください。

Function: re--describe-compiled regexp &optional raw

regexpやregexpエンジン自体の問題の診断を助けるために、この関数はコンパイルされた形式のregexpを記述する文字列をリターンする。これを理解するためには最低限、Emacsのソースコードのファイルsrc/regex-emacs.cにあるタイプre_opcode_tの説明を読解できる必要があるかもしれない。

現在のところは--enable-checkingを指定してEmacsをビルドした場合のみ、意味のある記述を得ることができる。

This page has generated for branch:work/emacs-30_69b16e5c63840479270d32f58daea923fe725b90, commit:5e3f74b56ff47b5bcef2526c70f53f749bbd45f6 to check Japanese translation.