C++ Regex vs regexr.com

OP #6800240
Lesenswert?

Grüß euch

Ich bräuchte kurz Hilfe um einen Regex Ausdruck in C++ 
zusammenzustellen.

Folgender Ausdruck soll Zahlen und Zahlenbereich aus einem String 
kitzeln:
1
(\d+\s*-\s*\d+)|(\d+)

Mein Teststring hierfür ist:
1
1 10-42 7 unmatched text , 42

https://regexr.com/ meldet für diese Kombination auch "4x matches", ich 
schaffe es nur nicht das selbe Ergebnis mit C++ zu reproduziereren. 
Folgender Code gibt lediglich "1 1" aus...
1
#include <iostream>
2
#include <regex>
3
#include <string>
4

5
std::string str{"1 10-42 7 unmatched text , 42"};
6
std::regex str_expr{"(\\d+\\s*-\\s*\\d+)|(\\d+)"};
7

8
int main() {
9
  std::smatch sm;
10
  std::regex_search(str, sm, str_expr);
11
  for (auto& m : sm) std::cout << m << " ";
12
  std::cout << "\n";
13
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren