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_8ac894e2246f25d2a2a97d866b10e6e0b0fede5a, commit:b7b3c5b81a7a4eec61faa3ed3d7c731d52d3987b to check Japanese translation.