So gleichen Sie mehrere Ergebnisse mit std :: regex ab

Zum Beispiel. Wenn ich eine Zeichenfolge wie "first second third forth" habe und jedes einzelne Wort in einer Operation abgleichen möchte, um sie einzeln auszugeben.

Ich dachte nur, dass "(\ b \ S * \ b) {0,}" funktionieren würde. Aber tatsächlich hat es nicht funktioniert.

Was soll ich machen?

Hier ist mein Code:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    regex exp("(\\b\\S*\\b)");
    smatch res;
    string str = "first second third forth";
    regex_search(str, res, exp);
    cout << res[0] <<" "<<res[1]<<" "<<res[2]<<" "<<res[3]<< endl;
}   

Ich freue mich auf Ihre freundliche Hilfe. :)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage