2007-06-08 09:23:23 +00:00
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >
2007-11-07 03:23:31 +00:00
< title > regex_iterator< / title >
2007-06-08 09:23:23 +00:00
< link rel = "stylesheet" href = "../../../../../../doc/html/boostbook.css" type = "text/css" >
2007-11-07 03:23:31 +00:00
< meta name = "generator" content = "DocBook XSL Stylesheets V1.66.1" >
2007-06-08 09:23:23 +00:00
< link rel = "start" href = "../../index.html" title = "Boost.Regex" >
2007-11-07 03:23:31 +00:00
< link rel = "up" href = "../ref.html" title = " Reference" >
< link rel = "prev" href = "regex_replace.html" title = " regex_replace" >
< link rel = "next" href = "regex_token_iterator.html" title = " regex_token_iterator" >
2007-06-08 09:23:23 +00:00
< / head >
< body bgcolor = "white" text = "black" link = "#0000FF" vlink = "#840084" alink = "#0000FF" >
2007-08-13 17:54:01 +00:00
< table cellpadding = "2" width = "100%" > < tr >
2007-06-08 09:23:23 +00:00
< td valign = "top" > < img alt = "Boost C++ Libraries" width = "277" height = "86" src = "../../../../../../boost.png" > < / td >
< td align = "center" > < a href = "../../../../../../index.htm" > Home< / a > < / td >
< td align = "center" > < a href = "../../../../../../libs/libraries.htm" > Libraries< / a > < / td >
< td align = "center" > < a href = "../../../../../../people/people.htm" > People< / a > < / td >
< td align = "center" > < a href = "../../../../../../more/faq.htm" > FAQ< / a > < / td >
< td align = "center" > < a href = "../../../../../../more/index.htm" > More< / a > < / td >
2007-08-13 17:54:01 +00:00
< / tr > < / table >
2007-06-08 09:23:23 +00:00
< hr >
< div class = "spirit-nav" >
< a accesskey = "p" href = "regex_replace.html" > < img src = "../../../../../../doc/html/images/prev.png" alt = "Prev" > < / a > < a accesskey = "u" href = "../ref.html" > < img src = "../../../../../../doc/html/images/up.png" alt = "Up" > < / a > < a accesskey = "h" href = "../../index.html" > < img src = "../../../../../../doc/html/images/home.png" alt = "Home" > < / a > < a accesskey = "n" href = "regex_token_iterator.html" > < img src = "../../../../../../doc/html/images/next.png" alt = "Next" > < / a >
< / div >
< div class = "section" lang = "en" >
< div class = "titlepage" > < div > < div > < h3 class = "title" >
2007-11-07 03:23:31 +00:00
< a name = "boost_regex.ref.regex_iterator" > < / a > < a href = "regex_iterator.html" title = " regex_iterator" > regex_iterator< / a > < / h3 > < / div > < / div > < / div >
2007-06-08 09:23:23 +00:00
< p >
2007-11-07 03:23:31 +00:00
The iterator type < a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a > will enumerate all
2007-06-08 09:23:23 +00:00
of the regular expression matches found in some sequence: dereferencing a
2007-11-07 03:23:31 +00:00
< a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a >
yields a reference to a < a href = "match_results.html" title = " match_results" > < tt class = "computeroutput" > < span class = "identifier" > match_results< / span > < / tt > < / a > object.
2007-06-08 09:23:23 +00:00
< / p >
< pre class = "programlisting" >
< span class = "keyword" > template< / span > < span class = "special" > < < / span > < span class = "keyword" > class< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "special" > ,< / span >
< span class = "keyword" > class< / span > < span class = "identifier" > charT< / span > < span class = "special" > =< / span > < span class = "identifier" > iterator_traits< / span > < span class = "special" > < < / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "special" > > ::< / span > < span class = "identifier" > value_type< / span > < span class = "special" > ,< / span >
< span class = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > =< / span > < span class = "identifier" > regex_traits< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > > < / span > < span class = "special" > > < / span >
< span class = "keyword" > class< / span > < span class = "identifier" > regex_iterator< / span >
< span class = "special" > {< / span >
< span class = "keyword" > public< / span > < span class = "special" > :< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > basic_regex< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span > < span class = "identifier" > regex_type< / span > < span class = "special" > ;< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "special" > > < / span > < span class = "identifier" > value_type< / span > < span class = "special" > ;< / span >
< span class = "keyword" > typedef< / span > < span class = "keyword" > typename< / span > < span class = "identifier" > iterator_traits< / span > < span class = "special" > < < / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "special" > > ::< / span > < span class = "identifier" > difference_type< / span > < span class = "identifier" > difference_type< / span > < span class = "special" > ;< / span >
< span class = "keyword" > typedef< / span > < span class = "keyword" > const< / span > < span class = "identifier" > value_type< / span > < span class = "special" > *< / span > < span class = "identifier" > pointer< / span > < span class = "special" > ;< / span >
< span class = "keyword" > typedef< / span > < span class = "keyword" > const< / span > < span class = "identifier" > value_type< / span > < span class = "special" > & < / span > < span class = "identifier" > reference< / span > < span class = "special" > ;< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > forward_iterator_tag< / span > < span class = "identifier" > iterator_category< / span > < span class = "special" > ;< / span >
< a href = "regex_iterator.html#boost_regex.regex_iterator.construct1" > regex_iterator< / a > < span class = "special" > ();< / span >
< a href = "regex_iterator.html#boost_regex.regex_iterator.construct2" > regex_iterator< / a > < span class = "special" > (< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > a< / span > < span class = "special" > ,< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > b< / span > < span class = "special" > ,< / span >
< span class = "keyword" > const< / span > < span class = "identifier" > regex_type< / span > < span class = "special" > & < / span > < span class = "identifier" > re< / span > < span class = "special" > ,< / span >
< span class = "identifier" > match_flag_type< / span > < span class = "identifier" > m< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< a href = "regex_iterator.html#boost_regex.regex_iterator.construct3" > regex_iterator< / a > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & );< / span >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > & < / span > < a href = "regex_iterator.html#boost_regex.regex_iterator.assign" > operator=(< / a > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & );< / span >
< span class = "keyword" > bool< / span > < a href = "regex_iterator.html#boost_regex.regex_iterator.op_eq" > operator==< / a > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & )< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< span class = "keyword" > bool< / span > < a href = "regex_iterator.html#boost_regex.regex_iterator.op_ne" > operator!=< / a > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & )< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< span class = "keyword" > const< / span > < span class = "identifier" > value_type< / span > < span class = "special" > & < / span > < a href = "regex_iterator.html#boost_regex.regex_iterator.op_deref" > operator*< / a > < span class = "special" > ()< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< span class = "keyword" > const< / span > < span class = "identifier" > value_type< / span > < span class = "special" > *< / span > < a href = "regex_iterator.html#boost_regex.regex_iterator.op_arrow" > operator-> < / a > < span class = "special" > ()< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > & < / span > < a href = "regex_iterator.html#boost_regex.regex_iterator.op_inc" > operator++< / a > < span class = "special" > ();< / span >
< span class = "identifier" > regex_iterator< / span > < a href = "regex_iterator.html#boost_regex.regex_iterator.op_inc2" > operator++< / a > < span class = "special" > (< / span > < span class = "keyword" > int< / span > < span class = "special" > );< / span >
< span class = "special" > };< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "keyword" > const< / span > < span class = "keyword" > char< / span > < span class = "special" > *> < / span > < span class = "identifier" > cregex_iterator< / span > < span class = "special" > ;< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > string< / span > < span class = "special" > ::< / span > < span class = "identifier" > const_iterator< / span > < span class = "special" > > < / span > < span class = "identifier" > sregex_iterator< / span > < span class = "special" > ;< / span >
< span class = "preprocessor" > #ifndef< / span > < span class = "identifier" > BOOST_NO_WREGEX< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "keyword" > const< / span > < span class = "keyword" > wchar_t< / span > < span class = "special" > *> < / span > < span class = "identifier" > wcregex_iterator< / span > < span class = "special" > ;< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > wstring< / span > < span class = "special" > ::< / span > < span class = "identifier" > const_iterator< / span > < span class = "special" > > < / span > < span class = "identifier" > wsregex_iterator< / span > < span class = "special" > ;< / span >
< span class = "preprocessor" > #endif< / span >
< span class = "keyword" > template< / span > < span class = "special" > < < / span > < span class = "keyword" > class< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *,< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
< a href = "regex_iterator.html#boost_regex.regex_iterator.make" > make_regex_iterator< / a > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *< / span > < span class = "identifier" > p< / span > < span class = "special" > ,< / span > < span class = "keyword" > const< / span > < span class = "identifier" > basic_regex< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > & < / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span >
< span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_flag_type< / span > < span class = "identifier" > m< / span > < span class = "special" > =< / span > < span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< span class = "keyword" > template< / span > < span class = "special" > < < / span > < span class = "keyword" > class< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > ST< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > SA< / span > < span class = "special" > > < / span >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "keyword" > typename< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > basic_string< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > ST< / span > < span class = "special" > ,< / span > < span class = "identifier" > SA< / span > < span class = "special" > > ::< / span > < span class = "identifier" > const_iterator< / span > < span class = "special" > ,< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
< a href = "regex_iterator.html#boost_regex.regex_iterator.make" > make_regex_iterator< / a > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > basic_string< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > ST< / span > < span class = "special" > ,< / span > < span class = "identifier" > SA< / span > < span class = "special" > > & < / span > < span class = "identifier" > p< / span > < span class = "special" > ,< / span >
< span class = "keyword" > const< / span > < span class = "identifier" > basic_regex< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > & < / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span >
< span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_flag_type< / span > < span class = "identifier" > m< / span > < span class = "special" > =< / span > < span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
2007-11-07 03:23:31 +00:00
< a name = "boost_regex.ref.regex_iterator.description" > < / a > < h4 >
< a name = "id547078" > < / a >
2007-06-08 09:23:23 +00:00
< a href = "regex_iterator.html#boost_regex.ref.regex_iterator.description" > Description< / a >
2007-11-07 03:23:31 +00:00
< / h4 >
2007-06-08 09:23:23 +00:00
< p >
2007-11-07 03:23:31 +00:00
A < a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a >
2007-06-08 09:23:23 +00:00
is constructed from a pair of iterators, and enumerates all occurrences of
a regular expression within that iterator range.
< / p >
< a name = "boost_regex.regex_iterator.construct1" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > ();< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : constructs an end of sequence
< a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a > .
2007-06-08 09:23:23 +00:00
< / p >
< a name = "boost_regex.regex_iterator.construct2" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > (< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > a< / span > < span class = "special" > ,< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > b< / span > < span class = "special" > ,< / span >
< span class = "keyword" > const< / span > < span class = "identifier" > regex_type< / span > < span class = "special" > & < / span > < span class = "identifier" > re< / span > < span class = "special" > ,< / span >
< span class = "identifier" > match_flag_type< / span > < span class = "identifier" > m< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : constructs a < a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a > that will enumerate
2007-06-08 09:23:23 +00:00
all occurrences of the expression < span class = "emphasis" > < em > re< / em > < / span > , within the sequence
2007-11-07 03:23:31 +00:00
[a,b), and found using < a href = "match_flag_type.html" title = " match_flag_type" > < tt class = "computeroutput" > < span class = "identifier" > match_flag_type< / span > < / tt > < / a > < span class = "emphasis" > < em > m< / em > < / span > .
The object < span class = "emphasis" > < em > re< / em > < / span > must exist for the lifetime of the < a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a > .
2007-06-08 09:23:23 +00:00
< / p >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Throws< / b > < / span > : < tt class = "computeroutput" > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > runtime_error< / span > < / tt >
2007-06-08 09:23:23 +00:00
if the complexity of matching the expression against an N character string
begins to exceed O(N< sup > 2< / sup > ), or if the program runs out of stack space while matching
the expression (if Boost.Regex is configured in recursive mode), or if the
2007-08-13 17:54:01 +00:00
matcher exhausts its permitted memory allocation (if Boost.Regex is configured
2007-06-08 09:23:23 +00:00
in non-recursive mode).
< / p >
< a name = "boost_regex.regex_iterator.construct3" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & < / span > < span class = "identifier" > that< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : constructs a copy of < tt class = "computeroutput" > < span class = "identifier" > that< / span > < / tt > .
2007-06-08 09:23:23 +00:00
< / p >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Postconditions< / b > < / span > : < tt class = "computeroutput" > < span class = "special" > *< / span > < span class = "keyword" > this< / span > < span class = "special" > ==< / span > < span class = "identifier" > that< / span > < / tt > .
2007-06-08 09:23:23 +00:00
< / p >
< a name = "boost_regex.regex_iterator.assign" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > & < / span > < span class = "keyword" > operator< / span > < span class = "special" > =(< / span > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & );< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : sets < tt class = "computeroutput" > < span class = "special" > *< / span > < span class = "keyword" > this< / span > < / tt > equal to those in < tt class = "computeroutput" > < span class = "identifier" > that< / span > < / tt > .
2007-06-08 09:23:23 +00:00
< / p >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Postconditions< / b > < / span > : *this == that.
2007-06-08 09:23:23 +00:00
< / p >
< a name = "boost_regex.regex_iterator.op_eq" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "keyword" > bool< / span > < span class = "keyword" > operator< / span > < span class = "special" > ==(< / span > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & < / span > < span class = "identifier" > that< / span > < span class = "special" > )< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : returns true if *this is equal
2007-06-08 09:23:23 +00:00
to that.
< / p >
< a name = "boost_regex.regex_iterator.op_ne" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "keyword" > bool< / span > < span class = "keyword" > operator< / span > < span class = "special" > !=(< / span > < span class = "keyword" > const< / span > < span class = "identifier" > regex_iterator< / span > < span class = "special" > & )< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : returns < tt class = "computeroutput" > < span class = "special" > !(*< / span > < span class = "keyword" > this< / span > < span class = "special" > ==< / span > < span class = "identifier" > that< / span > < span class = "special" > )< / span > < / tt > .
2007-06-08 09:23:23 +00:00
< / p >
< a name = "boost_regex.regex_iterator.op_deref" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "keyword" > const< / span > < span class = "identifier" > value_type< / span > < span class = "special" > & < / span > < span class = "keyword" > operator< / span > < span class = "special" > *()< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : dereferencing a < a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a > object it yields
a const reference to a < a href = "match_results.html" title = " match_results" > < tt class = "computeroutput" > < span class = "identifier" > match_results< / span > < / tt > < / a > object, whose members
2007-06-08 09:23:23 +00:00
are set as follows:
< / p >
< div class = "informaltable" > < table class = "table" >
< colgroup >
< col >
< col >
< / colgroup >
< thead > < tr >
< th >
< p >
Element
< / p >
< / th >
< th >
< p >
Value
< / p >
< / th >
< / tr > < / thead >
< tbody >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "identifier" > re< / span > < span class = "special" > .< / span > < span class = "identifier" > mark_count< / span > < span class = "special" > ()< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > empty< / span > < span class = "special" > ()< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "keyword" > false< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > first< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
The end of the last match found, or the start of the underlying sequence
if this is the first match enumerated
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > last< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
The same as the start of the match found: < tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > first< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > matched< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
True if the prefix did not match an empty string: < tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > first< / span > < span class = "special" > !=< / span >
< span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > second< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > first< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
The same as the end of the match found: < tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > second< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > last< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
The end of the underlying sequence.
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > matched< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
True if the suffix did not match an empty string: < tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > first< / span > < span class = "special" > !=< / span >
< span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > second< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > first< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
The start of the sequence of characters that matched the regular
expression
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > second< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
The end of the sequence of characters that matched the regular expression
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > matched< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
true if a full match was found, and false if it was a partial match
(found as a result of the match_partial flag being set).
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "identifier" > n< / span > < span class = "special" > ].< / span > < span class = "identifier" > first< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
For all integers < tt class = "computeroutput" > < span class = "identifier" > n< / span > < span class = "special" > < < / span > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / tt > ,
2007-06-08 09:23:23 +00:00
the start of the sequence that matched sub-expression < span class = "emphasis" > < em > n< / em > < / span > .
Alternatively, if sub-expression < span class = "emphasis" > < em > n< / em > < / span > did not participate
in the match, then last.
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "identifier" > n< / span > < span class = "special" > ].< / span > < span class = "identifier" > second< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
For all integers < tt class = "computeroutput" > < span class = "identifier" > n< / span > < span class = "special" > < < / span > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / tt > ,
2007-06-08 09:23:23 +00:00
the end of the sequence that matched sub-expression < span class = "emphasis" > < em > n< / em > < / span > .
Alternatively, if sub-expression < span class = "emphasis" > < em > n< / em > < / span > did not participate
in the match, then last.
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > )[< / span > < span class = "identifier" > n< / span > < span class = "special" > ].< / span > < span class = "identifier" > matched< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
For all integers < tt class = "computeroutput" > < span class = "identifier" > n< / span > < span class = "special" > < < / span > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / tt > ,
2007-06-08 09:23:23 +00:00
true if sub-expression < span class = "emphasis" > < em > n< / em > < / span > participated in the
match, false otherwise.
< / p >
< / td >
< / tr >
< tr >
< td >
< p >
2007-11-07 03:23:31 +00:00
< tt class = "computeroutput" > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > position< / span > < span class = "special" > (< / span > < span class = "identifier" > n< / span > < span class = "special" > )< / span > < / tt >
2007-06-08 09:23:23 +00:00
< / p >
< / td >
< td >
< p >
2007-11-07 03:23:31 +00:00
For all integers < tt class = "computeroutput" > < span class = "identifier" > n< / span > < span class = "special" > < < / span > < span class = "special" > (*< / span > < span class = "identifier" > it< / span > < span class = "special" > ).< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / tt > ,
2007-06-08 09:23:23 +00:00
then the distance from the start of the underlying sequence to the
start of sub-expression match < span class = "emphasis" > < em > n< / em > < / span > .
< / p >
< / td >
< / tr >
< / tbody >
< / table > < / div >
< a name = "boost_regex.regex_iterator.op_arrow" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "keyword" > const< / span > < span class = "identifier" > value_type< / span > < span class = "special" > *< / span > < span class = "keyword" > operator< / span > < span class = "special" > -> ()< / span > < span class = "keyword" > const< / span > < span class = "special" > ;< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : returns < tt class = "computeroutput" > < span class = "special" > & (*< / span > < span class = "keyword" > this< / span > < span class = "special" > )< / span > < / tt > .
2007-06-08 09:23:23 +00:00
< / p >
< a name = "boost_regex.regex_iterator.op_inc" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > & < / span > < span class = "keyword" > operator< / span > < span class = "special" > ++();< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : moves the iterator to the next
2007-06-08 09:23:23 +00:00
match in the underlying sequence, or the end of sequence iterator if none
if found. When the last match found matched a zero length string, then the
2007-11-07 03:23:31 +00:00
< a href = "regex_iterator.html" title = " regex_iterator" > < tt class = "computeroutput" > < span class = "identifier" > regex_iterator< / span > < / tt > < / a >
2007-06-08 09:23:23 +00:00
will find the next match as follows: if there exists a non-zero length match
that starts at the same location as the last one, then returns it, otherwise
starts looking for the next (possibly zero length) match from one position
to the right of the last match.
< / p >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Throws< / b > < / span > : < tt class = "computeroutput" > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > runtime_error< / span > < / tt >
2007-06-08 09:23:23 +00:00
if the complexity of matching the expression against an N character string
begins to exceed O(N< sup > 2< / sup > ), or if the program runs out of stack space while matching
the expression (if Boost.Regex is configured in recursive mode), or if the
2007-08-13 17:54:01 +00:00
matcher exhausts its permitted memory allocation (if Boost.Regex is configured
2007-06-08 09:23:23 +00:00
in non-recursive mode).
< / p >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Returns< / b > < / span > : *this.
2007-06-08 09:23:23 +00:00
< / p >
< a name = "boost_regex.regex_iterator.op_inc2" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "identifier" > regex_iterator< / span > < span class = "keyword" > operator< / span > < span class = "special" > ++(< / span > < span class = "keyword" > int< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : constructs a copy result of < tt class = "computeroutput" > < span class = "special" > *< / span > < span class = "keyword" > this< / span > < / tt > , then
calls < tt class = "computeroutput" > < span class = "special" > ++(*< / span > < span class = "keyword" > this< / span > < span class = "special" > )< / span > < / tt > .
2007-06-08 09:23:23 +00:00
< / p >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Returns< / b > < / span > : result.
2007-06-08 09:23:23 +00:00
< / p >
< a name = "boost_regex.regex_iterator.make" > < / a > < p >
< / p >
< pre class = "programlisting" >
< span class = "keyword" > template< / span > < span class = "special" > < < / span > < span class = "keyword" > class< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *,< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
< span class = "identifier" > make_regex_iterator< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *< / span > < span class = "identifier" > p< / span > < span class = "special" > ,< / span > < span class = "keyword" > const< / span > < span class = "identifier" > basic_regex< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > & < / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span >
< span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_flag_type< / span > < span class = "identifier" > m< / span > < span class = "special" > =< / span > < span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< span class = "keyword" > template< / span > < span class = "special" > < < / span > < span class = "keyword" > class< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > ST< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > SA< / span > < span class = "special" > > < / span >
< span class = "identifier" > regex_iterator< / span > < span class = "special" > < < / span > < span class = "keyword" > typename< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > basic_string< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > ST< / span > < span class = "special" > ,< / span > < span class = "identifier" > SA< / span > < span class = "special" > > ::< / span > < span class = "identifier" > const_iterator< / span > < span class = "special" > ,< / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
< span class = "identifier" > make_regex_iterator< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > basic_string< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > ST< / span > < span class = "special" > ,< / span > < span class = "identifier" > SA< / span > < span class = "special" > > & < / span > < span class = "identifier" > p< / span > < span class = "special" > ,< / span >
< span class = "keyword" > const< / span > < span class = "identifier" > basic_regex< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > ,< / span > < span class = "identifier" > traits< / span > < span class = "special" > > & < / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span >
< span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_flag_type< / span > < span class = "identifier" > m< / span > < span class = "special" > =< / span > < span class = "identifier" > regex_constants< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-11-07 03:23:31 +00:00
< span class = "bold" > < b > Effects< / b > < / span > : returns an iterator that enumerates
2007-06-08 09:23:23 +00:00
all occurences of expression < span class = "emphasis" > < em > e< / em > < / span > in text < span class = "emphasis" > < em > p< / em > < / span >
2007-11-07 03:23:31 +00:00
using < a href = "match_flag_type.html" title = " match_flag_type" > < tt class = "computeroutput" > < span class = "identifier" > match_flag_type< / span > < / tt > < / a >
2007-06-08 09:23:23 +00:00
< span class = "emphasis" > < em > m< / em > < / span > .
< / p >
2007-11-07 03:23:31 +00:00
< a name = "boost_regex.ref.regex_iterator.examples" > < / a > < h4 >
< a name = "id550235" > < / a >
2007-06-08 09:23:23 +00:00
< a href = "regex_iterator.html#boost_regex.ref.regex_iterator.examples" > Examples< / a >
2007-11-07 03:23:31 +00:00
< / h4 >
2007-06-08 09:23:23 +00:00
< p >
The following example takes a C++ source file and builds up an index of class
names, and the location of that class in the file.
< / p >
< pre class = "programlisting" >
< span class = "preprocessor" > #include< / span > < span class = "special" > < < / span > < span class = "identifier" > string< / span > < span class = "special" > > < / span >
< span class = "preprocessor" > #include< / span > < span class = "special" > < < / span > < span class = "identifier" > map< / span > < span class = "special" > > < / span >
< span class = "preprocessor" > #include< / span > < span class = "special" > < < / span > < span class = "identifier" > fstream< / span > < span class = "special" > > < / span >
< span class = "preprocessor" > #include< / span > < span class = "special" > < < / span > < span class = "identifier" > iostream< / span > < span class = "special" > > < / span >
< span class = "preprocessor" > #include< / span > < span class = "special" > < < / span > < span class = "identifier" > boost< / span > < span class = "special" > /< / span > < span class = "identifier" > regex< / span > < span class = "special" > .< / span > < span class = "identifier" > hpp< / span > < span class = "special" > > < / span >
< span class = "keyword" > using< / span > < span class = "keyword" > namespace< / span > < span class = "identifier" > std< / span > < span class = "special" > ;< / span >
< span class = "comment" > // purpose:
< / span > < span class = "comment" > // takes the contents of a file in the form of a string
< / span > < span class = "comment" > // and searches for all the C++ class definitions, storing
< / span > < span class = "comment" > // their locations in a map of strings/int's
< / span >
< span class = "keyword" > typedef< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > map< / span > < span class = "special" > < < / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > string< / span > < span class = "special" > ,< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > string< / span > < span class = "special" > ::< / span > < span class = "identifier" > difference_type< / span > < span class = "special" > ,< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > less< / span > < span class = "special" > < < / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > string< / span > < span class = "special" > > < / span > < span class = "special" > > < / span > < span class = "identifier" > map_type< / span > < span class = "special" > ;< / span >
< span class = "keyword" > const< / span > < span class = "keyword" > char< / span > < span class = "special" > *< / span > < span class = "identifier" > re< / span > < span class = "special" > =< / span >
< span class = "comment" > // possibly leading whitespace:
< / span > < span class = "string" > "^[[:space:]]*"< / span >
< span class = "comment" > // possible template declaration:
< / span > < span class = "string" > "(template[[:space:]]*< [^;:{]+> [[:space:]]*)?"< / span >
< span class = "comment" > // class or struct:
< / span > < span class = "string" > "(class|struct)[[:space:]]*"< / span >
< span class = "comment" > // leading declspec macros etc:
< / span > < span class = "string" > "("< / span >
< span class = "string" > "\\< \\w+\\> "< / span >
< span class = "string" > "("< / span >
< span class = "string" > "[[:blank:]]*\\([^)]*\\)"< / span >
< span class = "string" > ")?"< / span >
< span class = "string" > "[[:space:]]*"< / span >
< span class = "string" > ")*"< / span >
< span class = "comment" > // the class name
< / span > < span class = "string" > "(\\< \\w*\\> )[[:space:]]*"< / span >
< span class = "comment" > // template specialisation parameters
< / span > < span class = "string" > "(< [^;:{]+> )?[[:space:]]*"< / span >
< span class = "comment" > // terminate in { or :
< / span > < span class = "string" > "(\\{|:[^;\\{()]*\\{)"< / span > < span class = "special" > ;< / span >
< span class = "identifier" > boost< / span > < span class = "special" > ::< / span > < span class = "identifier" > regex< / span > < span class = "identifier" > expression< / span > < span class = "special" > (< / span > < span class = "identifier" > re< / span > < span class = "special" > );< / span >
< span class = "identifier" > map_type< / span > < span class = "identifier" > class_index< / span > < span class = "special" > ;< / span >
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_callback< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > boost< / span > < span class = "special" > ::< / span > < span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > string< / span > < span class = "special" > ::< / span > < span class = "identifier" > const_iterator< / span > < span class = "special" > > & < / span > < span class = "identifier" > what< / span > < span class = "special" > )< / span >
< span class = "special" > {< / span >
< span class = "comment" > // what[0] contains the whole string
< / span > < span class = "comment" > // what[5] contains the class name.
< / span > < span class = "comment" > // what[6] contains the template specialisation if any.
< / span > < span class = "comment" > // add class name and position to map:
< / span > < span class = "identifier" > class_index< / span > < span class = "special" > [< / span > < span class = "identifier" > what< / span > < span class = "special" > [< / span > < span class = "number" > 5< / span > < span class = "special" > ].< / span > < span class = "identifier" > str< / span > < span class = "special" > ()< / span > < span class = "special" > +< / span > < span class = "identifier" > what< / span > < span class = "special" > [< / span > < span class = "number" > 6< / span > < span class = "special" > ].< / span > < span class = "identifier" > str< / span > < span class = "special" > ()]< / span > < span class = "special" > =< / span > < span class = "identifier" > what< / span > < span class = "special" > .< / span > < span class = "identifier" > position< / span > < span class = "special" > (< / span > < span class = "number" > 5< / span > < span class = "special" > );< / span >
< span class = "keyword" > return< / span > < span class = "keyword" > true< / span > < span class = "special" > ;< / span >
< span class = "special" > }< / span >
< span class = "keyword" > void< / span > < span class = "identifier" > load_file< / span > < span class = "special" > (< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > string< / span > < span class = "special" > & < / span > < span class = "identifier" > s< / span > < span class = "special" > ,< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > istream< / span > < span class = "special" > & < / span > < span class = "identifier" > is< / span > < span class = "special" > )< / span >
< span class = "special" > {< / span >
< span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > erase< / span > < span class = "special" > ();< / span >
< span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > reserve< / span > < span class = "special" > (< / span > < span class = "identifier" > is< / span > < span class = "special" > .< / span > < span class = "identifier" > rdbuf< / span > < span class = "special" > ()-> < / span > < span class = "identifier" > in_avail< / span > < span class = "special" > ());< / span >
< span class = "keyword" > char< / span > < span class = "identifier" > c< / span > < span class = "special" > ;< / span >
< span class = "keyword" > while< / span > < span class = "special" > (< / span > < span class = "identifier" > is< / span > < span class = "special" > .< / span > < span class = "identifier" > get< / span > < span class = "special" > (< / span > < span class = "identifier" > c< / span > < span class = "special" > ))< / span >
< span class = "special" > {< / span >
< span class = "keyword" > if< / span > < span class = "special" > (< / span > < span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > capacity< / span > < span class = "special" > ()< / span > < span class = "special" > ==< / span > < span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > size< / span > < span class = "special" > ())< / span >
< span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > reserve< / span > < span class = "special" > (< / span > < span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > capacity< / span > < span class = "special" > ()< / span > < span class = "special" > *< / span > < span class = "number" > 3< / span > < span class = "special" > );< / span >
< span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > append< / span > < span class = "special" > (< / span > < span class = "number" > 1< / span > < span class = "special" > ,< / span > < span class = "identifier" > c< / span > < span class = "special" > );< / span >
< span class = "special" > }< / span >
< span class = "special" > }< / span >
< span class = "keyword" > int< / span > < span class = "identifier" > main< / span > < span class = "special" > (< / span > < span class = "keyword" > int< / span > < span class = "identifier" > argc< / span > < span class = "special" > ,< / span > < span class = "keyword" > const< / span > < span class = "keyword" > char< / span > < span class = "special" > **< / span > < span class = "identifier" > argv< / span > < span class = "special" > )< / span >
< span class = "special" > {< / span >
< span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > string< / span > < span class = "identifier" > text< / span > < span class = "special" > ;< / span >
< span class = "keyword" > for< / span > < span class = "special" > (< / span > < span class = "keyword" > int< / span > < span class = "identifier" > i< / span > < span class = "special" > =< / span > < span class = "number" > 1< / span > < span class = "special" > ;< / span > < span class = "identifier" > i< / span > < span class = "special" > < < / span > < span class = "identifier" > argc< / span > < span class = "special" > ;< / span > < span class = "special" > ++< / span > < span class = "identifier" > i< / span > < span class = "special" > )< / span >
< span class = "special" > {< / span >
< span class = "identifier" > cout< / span > < span class = "special" > < < < / span > < span class = "string" > "Processing file "< / span > < span class = "special" > < < < / span > < span class = "identifier" > argv< / span > < span class = "special" > [< / span > < span class = "identifier" > i< / span > < span class = "special" > ]< / span > < span class = "special" > < < < / span > < span class = "identifier" > endl< / span > < span class = "special" > ;< / span >
< span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > ifstream< / span > < span class = "identifier" > fs< / span > < span class = "special" > (< / span > < span class = "identifier" > argv< / span > < span class = "special" > [< / span > < span class = "identifier" > i< / span > < span class = "special" > ]);< / span >
< span class = "identifier" > load_file< / span > < span class = "special" > (< / span > < span class = "identifier" > text< / span > < span class = "special" > ,< / span > < span class = "identifier" > fs< / span > < span class = "special" > );< / span >
< span class = "comment" > // construct our iterators:
< / span > < span class = "identifier" > boost< / span > < span class = "special" > ::< / span > < span class = "identifier" > sregex_iterator< / span > < span class = "identifier" > m1< / span > < span class = "special" > (< / span > < span class = "identifier" > text< / span > < span class = "special" > .< / span > < span class = "identifier" > begin< / span > < span class = "special" > (),< / span > < span class = "identifier" > text< / span > < span class = "special" > .< / span > < span class = "identifier" > end< / span > < span class = "special" > (),< / span > < span class = "identifier" > expression< / span > < span class = "special" > );< / span >
< span class = "identifier" > boost< / span > < span class = "special" > ::< / span > < span class = "identifier" > sregex_iterator< / span > < span class = "identifier" > m2< / span > < span class = "special" > ;< / span >
< span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > for_each< / span > < span class = "special" > (< / span > < span class = "identifier" > m1< / span > < span class = "special" > ,< / span > < span class = "identifier" > m2< / span > < span class = "special" > ,< / span > < span class = "special" > & < / span > < span class = "identifier" > regex_callback< / span > < span class = "special" > );< / span >
< span class = "comment" > // copy results:
< / span > < span class = "identifier" > cout< / span > < span class = "special" > < < < / span > < span class = "identifier" > class_index< / span > < span class = "special" > .< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < span class = "special" > < < < / span > < span class = "string" > " matches found"< / span > < span class = "special" > < < < / span > < span class = "identifier" > endl< / span > < span class = "special" > ;< / span >
< span class = "identifier" > map_type< / span > < span class = "special" > ::< / span > < span class = "identifier" > iterator< / span > < span class = "identifier" > c< / span > < span class = "special" > ,< / span > < span class = "identifier" > d< / span > < span class = "special" > ;< / span >
< span class = "identifier" > c< / span > < span class = "special" > =< / span > < span class = "identifier" > class_index< / span > < span class = "special" > .< / span > < span class = "identifier" > begin< / span > < span class = "special" > ();< / span >
< span class = "identifier" > d< / span > < span class = "special" > =< / span > < span class = "identifier" > class_index< / span > < span class = "special" > .< / span > < span class = "identifier" > end< / span > < span class = "special" > ();< / span >
< span class = "keyword" > while< / span > < span class = "special" > (< / span > < span class = "identifier" > c< / span > < span class = "special" > !=< / span > < span class = "identifier" > d< / span > < span class = "special" > )< / span >
< span class = "special" > {< / span >
< span class = "identifier" > cout< / span > < span class = "special" > < < < / span > < span class = "string" > "class \""< / span > < span class = "special" > < < < / span > < span class = "special" > (*< / span > < span class = "identifier" > c< / span > < span class = "special" > ).< / span > < span class = "identifier" > first< / span > < span class = "special" > < < < / span > < span class = "string" > "\" found at index: "< / span > < span class = "special" > < < < / span > < span class = "special" > (*< / span > < span class = "identifier" > c< / span > < span class = "special" > ).< / span > < span class = "identifier" > second< / span > < span class = "special" > < < < / span > < span class = "identifier" > endl< / span > < span class = "special" > ;< / span >
< span class = "special" > ++< / span > < span class = "identifier" > c< / span > < span class = "special" > ;< / span >
< span class = "special" > }< / span >
< span class = "identifier" > class_index< / span > < span class = "special" > .< / span > < span class = "identifier" > erase< / span > < span class = "special" > (< / span > < span class = "identifier" > class_index< / span > < span class = "special" > .< / span > < span class = "identifier" > begin< / span > < span class = "special" > (),< / span > < span class = "identifier" > class_index< / span > < span class = "special" > .< / span > < span class = "identifier" > end< / span > < span class = "special" > ());< / span >
< span class = "special" > }< / span >
< span class = "keyword" > return< / span > < span class = "number" > 0< / span > < span class = "special" > ;< / span >
< span class = "special" > }< / span >
< / pre >
< / div >
< table xmlns:rev = "http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width = "100%" > < tr >
< td align = "left" > < / td >
2007-11-07 03:23:31 +00:00
< td align = "right" > < div class = "copyright-footer" > < small > Copyright <20> 2007 John Maddock< p >
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at < a href = "http://www.boost.org/LICENSE_1_0.txt" target = "_top" > http://www.boost.org/LICENSE_1_0.txt< / a > )
< / p > < / small > < / div > < / td >
2007-06-08 09:23:23 +00:00
< / tr > < / table >
< hr >
< div class = "spirit-nav" >
< a accesskey = "p" href = "regex_replace.html" > < img src = "../../../../../../doc/html/images/prev.png" alt = "Prev" > < / a > < a accesskey = "u" href = "../ref.html" > < img src = "../../../../../../doc/html/images/up.png" alt = "Up" > < / a > < a accesskey = "h" href = "../../index.html" > < img src = "../../../../../../doc/html/images/home.png" alt = "Home" > < / a > < a accesskey = "n" href = "regex_token_iterator.html" > < img src = "../../../../../../doc/html/images/next.png" alt = "Next" > < / a >
< / div >
< / body >
< / html >