Zählt die Anzahl der übereinstimmungen
Wie zähle ich die Anzahl der übereinstimmungen mit C++11 ist std::regex
?
std::regex re("[^\\s]+");
std::cout << re.matches("Harry Botter - The robot who lived.").count() << std::endl;
Erwartete Ausgabe:
7
- Und Ihr Ausgang ist ....
- Ich Holen Sie sich a Kompilierungs-Fehler:
error: ‘regex_count’ was not declared in this scope
. 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
regex_iterator
zu generieren, die der entspricht, dann verwenden Siedistance
zu zählen:std::sregex_iterator
gibt und was den 'Abstand' zwischen den beiden bedeutet?regex_iterator
, die iteriert über alle übereinstimmungen im text.distance
ist die Standard-Bibliothek-Funktion, die berechnet die Anzahl der Elemente in einem iterator-Bereich (also in diesem Fall, es liest alle Spiele und gibt zurück, wie viele es sind).match_count
Betrieb."match_count
ist eine variable, in die ich speichern und die Anzahl der Treffer berechnet, indemstd::distance
.Diese:
Beispiel:
Ausgabe: