C++11 で後読みを使用できないのはなぜですか? 先読みはうまくいきます。
std::regex e("(?<=a)b");
これにより、次の例外がスローされます。
The expression contained mismatched ( and ).
これは例外をスローしません:
std::regex e("a(?=b)");
私は何が欠けていますか?
C++11<regex>
は ECMAScript の (ECMA-262) 正規表現構文を使用するため、後読みはありません (C++11 がサポートする他のフレーバーの正規表現にも後読みはありません)。
ユース ケースで後読みの使用が必要な場合は、代わりにBoost.Regexの使用を検討してください。