すべての正規表現とそれらの位置を取得する必要があります。すべての正規表現の一致を一つずつ取得する
例えば、私はこの正規表現を持っている:
std::regex r("(a)|(b)|(c)");
そして、この入力テキスト:
std::string text("abcab");
は今、私はループに私は1つのマッチからのすべての出現にアクセスすることができ、すべてのループであっ試合をしたいです。最初のループでは、私は位置0に "a"を、位置3に "a"を得ることができました。2番目のループでは、1で "b"、4で "b"になります。3番目のループでは "c "2位にある。これをどうすればできるの?
現在、正規表現の部分は別に(正規表現(a)
、(b)
、(c)
)、1つずつ順番に並べています。しかし、それらのかなりのものがありますので、私はより良い/より速い解決策を探しています。
http://en.cppreference.com/w/cpp/regex/regex_iterator –
[this](https://ideone.com/QAqBGn)のようなもの? –
@WiktorStribiżewどのマッチ番号が現在のマッチであるか知る必要があります。 –