私は正規表現をC++ 11で使用しようとしていますが、コードでは常にstd::regex_error
がInvalid special open parenthesis.
です。文字列内の最初の重複文字を見つけようとする最小限のコード例:無効な特殊なかっこで正規表現マッチングが失敗する
std::string regexp_string("(?P<a>[a-z])(?P=a)"); // Nothing to be escaped here, right?
std::regex regexp_to_match(regexp_string);
std::string target("abbab");
std::smatch matched_regexp;
std::regex_match(target, matched_regexp, regexp_to_match);
for(const auto& m: matched_regexp)
{
std::cout << m << std::endl;
}
は、なぜ私はエラーを取得するか、どのように私はこの例を修正するのですか?
私は、その後の例を修正する方法を教えてもらえますか?私の目標はキャプチャグループにラベルを付けることです –
何をキャプチャするグループですか?あなたは ''(a [z])(a) ''または何か必要ですか? – bipll
再集計パターンを見つける必要があるので、特定のキャプチャグループラベルに対して同じ文字だけをキャプチャするグループを作成したいと考えています。 –