Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2006-04-08 05:35:44


> Quick question about the Boost::Regex library. Is there a way to
> identify, with sub-matches, where a match in the search string is
> made and the length of the match? For instance, with the following
> regular expression and search string:
>
> Regex ==> "(\d+)"
> Search String ==> "Give me 100 dollars or give me 2001 dollars."
>
> Is there a way to determine that the subexpression matched at
> positions 8 and 31 in the search string, and that the lengths of the
> matches were three and four characters?

Take a look at the position(sub) and length(sub) member functions of
match_results<>

sub_match also has a length() member function, but no position() because it
doesn't know where the search started from (unlike match_results which
does).

There's no need to get involved with repeated captures and match_extra etc
BTW.

John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net