Następujące wyjścia "> Hut" w miejscu, w którym oczekuję wyjścia "Hut". Wiem to. * Jest chciwy, ale> musi być dopasowany i znajduje się poza grupą przechwytującą, więc dlaczego jest w moim podziale?C++ regex niezrozumienie
#include <string>
#include <regex>
#include <iostream>
using namespace std;
int main() {
regex my_r(".*>(.*)");
string temp(R"~(cols="64">Hut)~");
smatch m;
if (regex_match(temp, m, my_r)) {
cout << m[1] << endl;
}
}
Należy zauważyć, że prawdopodobnie obsługa implementacji regex jest nadal bardzo niska na gcc i MSVC. – inf
dzięki, używam gcc 4.6.3. –
Uaktualniłem do g ++ 4.7, ale wciąż ten sam wynik. Nadal uważam, że to nieporozumienie dotyczące wyrażeń regularnych z mojej strony. Zbyt często w przeszłości obwiniałem oprogramowanie o własne błędy. –