Irgendeine Idee, warum der folgende Code "keine Übereinstimmung" druckt? Etwas mit dem Compiler oder der Version der Bibliothek verwandt? Ich habe mit g ++ a.cpp kompiliert.Probleme mit tr1/Regex. Drucke gegenüberliegend Ergebnis
#include <tr1/regex>
#include <iostream>
#include <string>
using namespace std;
int main()
{
const std::tr1::regex pattern("(\\w+day)");
std::string weekend = "Saturday and Sunday";
std::tr1::smatch result;
bool match = std::tr1::regex_search(weekend, result, pattern);
if(match)
{
for(size_t i = 1; i < result.size(); ++i)
{
std::cout << result[i] << std::endl;
}
}else
std::cout << "no match" << std::endl;
return 0;
}
+1 für einen kurzen vollständigen Testfall. –
der Code ist so offensichtlich, dass ich vermute, unvollständige Unterstützung des Compilers (zumindest bei meiner Version) gegenüber dem Standard. Wie kann ich dies überprüfen? – cateof
Nur als Referenz - MSVC 2010 SP1 (16.00.40219.01) kompiliert und findet die Übereinstimmung richtig. Sie haben nicht die Version von GCC angegeben, die Sie verwenden. – DCoder