Regex Submatch Position Question

Hi all, 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? Thanks

If I understand your question, the snippet sample code related to "Captures"
can be adapted:
http://www.boost.org/libs/regex/doc/captures.html
HTH
----- Original Message -----
From:
Hi all,
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?
Thanks

I'm taking a look at http://www.boost.org/libs/regex/doc/captures.html but
I'm not seeing how to access the capture start location with match_extra?
I'll keep digging but if anyone out there knows of a shortcut to the answer,
it'd be appreciated.
-----Original Message-----
From: boost-users-bounces@lists.boost.org
[mailto:boost-users-bounces@lists.boost.org] On Behalf Of Lynn Allan
Sent: Friday, April 07, 2006 6:04 PM
To: boost-users@lists.boost.org
Subject: Re: [Boost-users] Regex Submatch Position Question
If I understand your question, the snippet sample code related to "Captures"
can be adapted:
http://www.boost.org/libs/regex/doc/captures.html
HTH
----- Original Message -----
From:
Hi all,
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?
Thanks
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Michael Coles, MCDBA wrote:
I'm taking a look at http://www.boost.org/libs/regex/doc/captures.html but I'm not seeing how to access the capture start location with match_extra? I'll keep digging but if anyone out there knows of a shortcut to the answer, it'd be appreciated.
<alert comment="boost newbie">
Here's some code adapted from the regex chapter in:
"Beyond the C++ Standard Library ... an Introduction to Boost:
#include <iostream>
#include
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Lynn Allan Sent: Friday, April 07, 2006 6:04 PM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Regex Submatch Position Question
If I understand your question, the snippet sample code related to "Captures"
can be adapted: http://www.boost.org/libs/regex/doc/captures.html
HTH
----- Original Message ----- From:
Newsgroups: gmane.comp.lib.boost.user Sent: Friday, April 07, 2006 12:19 PM Subject: Regex Submatch Position Question Hi all,
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?
Thanks
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

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.

<snip>
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? </snip>
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.
Thank you, I think that's exactly what I need. Appreciate it!
participants (4)
-
adminīŧ geocodenet.com
-
John Maddock
-
Lynn Allan
-
Michael Coles, MCDBA