Boost logo

Boost Users :

From: Christopher Hart (hartct_at_[hidden])
Date: 2006-05-21 15:57:32

I've run into a problem where I'm getting an "Invalid content of
repeat range" when attempting to match a string using greediness and
capture operators. I'm using the following function (basically taken
from the "print captures" example in the regex docs):

void find_matches(const std::string& regx, const std::string& text)
        boost::regex e(regx, boost::regex::perl);
        boost::smatch what;
        std::cout << "Expression: \"" << regx << "\"\n";
        std::cout << "Text: \"" << text << "\"\n";
        if(boost::regex_match(text, what, e)) //, boost::match_extra))
                ... [snip] ...

... invoked by:

find_matches(html, "<p class=\"priceBest\"><a href=(.*?)>");

The pattern I'm trying to match is working in Perl program (e.g. if
($html =~ m|<p class="priceBest"><a href=(.*?)>|gs) {...} ), so it
seems like the pattern should be syntactically correct. I'm building
on Mac OS X 10.4 (Intel) with Boost 1.33.1.

I'm new to Boost and probably spoiled by Perl pattern matching, so I'm
guessing I'm missing something simple. Any help or suggestions are

Chris Hart

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at