|
Boost Users : |
Subject: Re: [Boost-users] regular expression to extract numbers
From: Ted Byers (r.ted.byers_at_[hidden])
Date: 2013-01-29 15:10:42
On Tue, Jan 29, 2013 at 2:24 PM, Neil Sutton <neilmsutton_at_[hidden]> wrote:
> I am writing a very simple program that extracts numbers from a string.
> The numbers are actually lottery numbers.
> So far, my program connects to a certain url and downloads a file that
> contains the latest lottery results. I have managed to reach the point
> where the barest amount of relevant data is contained in a std::string.
>
I almost forgot, over a decade ago, I did write my own string splitter,
similar to:
void split(const string& str, const string& delimiters , vector<string>&
tokens)
{
// Skip delimiters at beginning.
string::size_type lastPos = str.find_first_not_of(delimiters, 0);
// Find first "non-delimiter".
string::size_type pos = str.find_first_of(delimiters, lastPos);
while (string::npos != pos || string::npos != lastPos)
{
// Found a token, add it to the vector.
tokens.push_back(str.substr(lastPos, pos - lastPos));
// Skip delimiters. Note the "not_of"
lastPos = str.find_first_not_of(delimiters, pos);
// Find next "non-delimiter"
pos = str.find_first_of(delimiters, lastPos);
}
}
If you search, you will find this simple string splitter algorithm has been
posted by several different people, and it is unknown to me whether those
who did so copied material others had posted or developed it themselves
(the algorithm itself is so simple and obvious it would not surprise me if
many who considered the problem developed it independently. Back when I
served as an educator, it would be something I'd have assigned a second
year programming class to implement as one of the course's exercises; as a
help in understanding the resources of STL and how to apply them in a
common problem.
Cheers
Ted
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