On Tue, Mar 8, 2011 at 4:40 PM, John Maddock
<boost.regex@virgin.net> wrote:
I am new to boost Libraries and I am trying to find a substring using
Boost::Regex
Lets say I want to find string "Hello" in "Hello world".
std::string completeStr = "Hello World";
std::string::const_iterator startOffset = completeStr.begin();
std::string::const_iterator endOffset = completeStr.end();
std::string searchWord= "Hello";
boost::regex expression(searchWord);
boost::match_flag_type flags = boost::match_any;
while(boost::regex_search(startOffset, endOffset, what, expression, flags))
{
int32 position = what.position(1);
int32 len = what[1].length();
}
but value of this position and length value is coming out to be -1.
It is not able to find this substring, Could anyone tell me what I am doing
wrong ?
First off, you don't need to use "match_any" unless it's what you really mean.
You're then accessing *marked subexpression 1* inside the loop, but the regular expression *does not contain any marked subexpressions*.
Use what.position() and what.length() to access the position and length info of the match as a whole.
HTH, John.
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users