Je pensais que $ indique la fin de la chaîne. Cependant, le morceau de code suivant donne "testbbbccc" comme résultat, ce qui est assez étonnant pour moi ... Cela signifie que $ correspond réellement à la fin de la ligne, pas à la fin de la chaîne entière.C++ TR1 regex - option multiligne
#include <iostream>
#include <regex>
using namespace std;
int main()
{
tr1::regex r("aaa([^]*?)(ogr|$)");
string test("bbbaaatestbbbccc\nddd");
vector<int> captures;
captures.push_back(1);
const std::tr1::sregex_token_iterator end;
for (std::tr1::sregex_token_iterator iter(test.begin(), test.end(), r, captures); iter != end;)
{
string& t1 = iter->str();
iter++;
cout << t1;
}
}
J'ai essayé de trouver un interrupteur « multiligne » (qui peut effectivement être facilement trouvés dans PCRE), mais sans succès ... quelqu'un peut me pointer vers la bonne direction?
Cordialement, RP
qui mise en œuvre de TR1 utilisez-vous? –
J'utilise Visual Studio 2008. –
comme je l'ai dit ci-dessous - essayez \ z au lieu de $ –