-1
常にアンダースコアで始まり、末尾にある一連の固有シーケンスが含まれています。私はこれらのシーケンス間の文字列の一部を返す正規表現を探しています。私は、最初の2つのアンダースコアの間にあるすべてのキャプチャグループを作ろうとしました。そして、その間にいくつかの文字があり、最後に、最初のキャプチャグループに一致させようとします。しかし、それは何も一致していません:始まる文字列と同じシーケンスで終わる文字列に一致する正規表現
std::string s = "somerandomstuff_UNIQUESEQUENCE_somemorethings_UNIQUESEQUENCE_morewords"
std::regex seq("_(.*)_.*_$1_", std::regex_constants::extended);
std::smatch m{};
std::regex_search(s, m, seq);
問題は、私は順序が何であるかを知らないということです、私はそうでない場合は、これが解決することはかなり簡単だろう(彼らが開始することを知っていて、アンダースコアで終わります... )。誰かがこれのための正規表現を知っていますか?
私はC++ 11 std :: regexの癖を知らないので、これはうまくいくとは思えませんが、 ''(_ [^ _] + _ )(。*?)\\ 1 "'。それが動作すれば、 'somemorethings'はグループ2と一致します。 – zwol
期待される出力は何ですか? –