Boost logo

Boost Users :

Subject: Re: [Boost-users] [Regex] Search Substring
From: S Nagre (snagre.mumbai_at_[hidden])
Date: 2011-03-08 12:09:24


Thanks a lot John for this, I changed my code to this and it worked..

    boost::smatch what;
    while (boost::regex_search(startOffset ,endOffset , what, expression))
    {
      int32 pos = what.position();
      int32 len = what.length();
    }

However, could you tell me how to do this if my input string is "Hello
World, Hello".
that is the reason I am using a while loop instead of an if since my input
string can contain more than 1 search string.

Subhash

On Tue, Mar 8, 2011 at 4:40 PM, John Maddock <boost.regex_at_[hidden]> 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_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



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