Regex_search

0

Witam.
Programuję głównie w PHP, a tam mam elegancką funkcję preg_match_all, który przeszukuje mi ciąg w poszukiwaniu podciągów, zdefiniowanych we wzorze.
Takie "zwykłe" wyrażenie regularne. Jednak w C++ już takie zwykłe nie są :/
Szukałem trochę i znalazłem jakąś bibliotekę boost.regex, jednak nie bardzo mogę sobie z tym poradzić.
Mógł by mi ktoś napisać przykład, jak tego poprawnie używać? Chodzi mi głównie o przeszukiwanie pliku.
Mam coś takiego

   boost::regex re("<a\\s+href=\"([\\-:\\w\\d\\.\\/]+)\">");
   string file(bodyfilename);
   char buf[BUFSIZE];
   boost::cmatch matches;
   string sbuf;
   string::const_iterator begin;
   ifstream inn(file.c_str());

   while (!inn.eof())
   {
      inn.getline(buf, BUFSIZE-1);
      sbuf = buf;
      begin = sbuf.begin();

      while (boost::regex_search(begin, sbuf.end(), matches, re))
      {
         string url(matches[1].first, matches[1].second);
         cout << "URL: " << url << endl;
         // Update the beginning of the range to the character
         // following the match
         begin = matches[1].second;
      }
   }

Ale wywala mi:
No matching function for call to regex_search
Nie wiem już co z tym zrobić.
Z góry dzięki za pomoc.

0

Właśnie z tego korzystałem.
Jednak jak już pisałem, wywala mi:

No matching function for call to regex_search

0

wywołujesz funkcję w sposób którego nie ma w szablonie regex_search, skorzystaj z tego opisu, wraz z przykładem:

http://www.boost.org/doc/libs/1_41_0/libs/regex/doc/html/boost_regex/ref/regex_search.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1