Grüß euch
Ich bräuchte kurz Hilfe um einen Regex Ausdruck in C++
zusammenzustellen.
Folgender Ausdruck soll Zahlen und Zahlenbereich aus einem String
kitzeln:
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 | }
|