(またはそう思う)...
何かを解析するための正規表現エンジンとしてboost::xpressiveを使用していると、セグメンテーション違反が発生します。gdbは300を超えるスタックフレームを表示するため、再帰性と私の悪い正規表現が原因であると思われます。だから、これが私の(大文字と小文字を区別する)正規表現で、perl /python表記法です:
begin([^e]+)e((?:[^b]|b(?!egin))+)
私は一致することを期待しています
beginHEADER HEREeFOLLOWED BY SOME LONG LONG TEXT THAT GOES UNTIL NEXTbegin
最初のグループに最初の大文字のテキスト(HEADER HERE)があり、2番目のグループに2番目の大文字のテキストがあります。グループ2に一致するはずのテキストが非常に長い場合、常にセグメンテーション違反が発生します。
なぜこれが機能しないのですか?