2007-06-08 09:23:23 +00:00
< html >
< head >
2009-12-05 12:15:20 +00:00
< meta http-equiv = "Content-Type" content = "text/html; charset=US-ASCII" >
2007-12-14 10:11:21 +00:00
< title > regex_match< / title >
2010-07-08 22:49:58 +00:00
< link rel = "stylesheet" href = "../../../../../../doc/src/boostbook.css" type = "text/css" >
2011-07-21 10:01:09 +00:00
< meta name = "generator" content = "DocBook XSL Stylesheets V1.76.1" >
2008-12-23 11:46:00 +00:00
< link rel = "home" href = "../../index.html" title = "Boost.Regex" >
2007-12-14 10:11:21 +00:00
< link rel = "up" href = "../ref.html" title = "Reference" >
< link rel = "prev" href = "sub_match.html" title = "sub_match" >
< link rel = "next" href = "regex_search.html" title = "regex_search" >
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 >
2008-04-11 08:53:54 +00:00
< td align = "center" > < a href = "../../../../../../index.html" > Home< / a > < / td >
2007-06-08 09:23:23 +00:00
< td align = "center" > < a href = "../../../../../../libs/libraries.htm" > Libraries< / a > < / td >
2008-07-25 09:28:01 +00:00
< td align = "center" > < a href = "http://www.boost.org/users/people.html" > People< / a > < / td >
< td align = "center" > < a href = "http://www.boost.org/users/faq.html" > FAQ< / a > < / td >
2007-06-08 09:23:23 +00:00
< 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" >
2010-07-08 22:49:58 +00:00
< a accesskey = "p" href = "sub_match.html" > < img src = "../../../../../../doc/src/images/prev.png" alt = "Prev" > < / a > < a accesskey = "u" href = "../ref.html" > < img src = "../../../../../../doc/src/images/up.png" alt = "Up" > < / a > < a accesskey = "h" href = "../../index.html" > < img src = "../../../../../../doc/src/images/home.png" alt = "Home" > < / a > < a accesskey = "n" href = "regex_search.html" > < img src = "../../../../../../doc/src/images/next.png" alt = "Next" > < / a >
2007-06-08 09:23:23 +00:00
< / div >
2011-07-21 10:01:09 +00:00
< div class = "section" >
2007-06-08 09:23:23 +00:00
< div class = "titlepage" > < div > < div > < h3 class = "title" >
2011-01-01 12:27:00 +00:00
< a name = "boost_regex.ref.regex_match" > < / a > < a class = "link" href = "regex_match.html" title = "regex_match" > regex_match< / a >
2007-12-14 10:11:21 +00:00
< / h3 > < / div > < / div > < / div >
2011-12-24 17:51:57 +00:00
< pre class = "programlisting" > < 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 >
2007-06-08 09:23:23 +00:00
< / pre >
< p >
2008-12-23 11:46:00 +00:00
The algorithm < a class = "link" href = "regex_match.html" title = "regex_match" > < code class = "computeroutput" > < span class = "identifier" > regex_match< / span > < / code > < / a >
2007-12-14 10:11:21 +00:00
determines whether a given regular expression matches < span class = "bold" > < strong > all< / strong > < / span >
2007-06-08 09:23:23 +00:00
of a given character sequence denoted by a pair of bidirectional-iterators,
the algorithm is defined as follows, the main use of this function is data
input validation.
< / p >
< div class = "important" > < table border = "0" summary = "Important" >
< tr >
2010-07-08 22:49:58 +00:00
< td rowspan = "2" align = "center" valign = "top" width = "25" > < img alt = "[Important]" src = "../../../../../../doc/src/images/important.png" > < / td >
2007-06-08 09:23:23 +00:00
< th align = "left" > Important< / th >
< / tr >
2007-12-14 10:11:21 +00:00
< tr > < td align = "left" valign = "top" > < p >
Note that the result is true only if the expression matches the < span class = "bold" > < strong > whole< / strong > < / span > of the input sequence. If you want to search
2008-12-23 11:46:00 +00:00
for an expression somewhere within the sequence then use < a class = "link" href = "regex_search.html" title = "regex_search" > < code class = "computeroutput" > < span class = "identifier" > regex_search< / span > < / code > < / a > . If you want to match
a prefix of the character string then use < a class = "link" href = "regex_search.html" title = "regex_search" > < code class = "computeroutput" > < span class = "identifier" > regex_search< / span > < / code > < / a > with the flag match_continuous
2007-10-06 17:46:25 +00:00
set.
< / p > < / td > < / tr >
2007-06-08 09:23:23 +00:00
< / table > < / div >
2007-12-14 10:11:21 +00:00
< 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" > Allocator< / 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 >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > first< / span > < span class = "special" > ,< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > last< / span > < span class = "special" > ,< / span >
< span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "special" > ,< / span > < span class = "identifier" > Allocator< / span > < span class = "special" > > & < / span > < span class = "identifier" > m< / 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 >
2011-12-24 17:51:57 +00:00
< span class = "identifier" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
2007-06-08 09:23:23 +00:00
< 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 = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > first< / span > < span class = "special" > ,< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > last< / 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 >
2011-12-24 17:51:57 +00:00
< span class = "identifier" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
2007-06-08 09:23:23 +00:00
< 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" > Allocator< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *< / span > < span class = "identifier" > str< / span > < span class = "special" > ,< / span > < span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *,< / span > < span class = "identifier" > Allocator< / span > < span class = "special" > > & < / span > < span class = "identifier" > m< / 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 >
2011-12-24 17:51:57 +00:00
< span class = "identifier" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > template< / 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 = "keyword" > class< / span > < span class = "identifier" > Allocator< / 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" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / 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" > s< / span > < span class = "special" > ,< / span >
2011-12-24 17:51:57 +00:00
< span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "keyword" > typename< / 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" > Allocator< / span > < span class = "special" > > & < / span > < span class = "identifier" > m< / 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" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
2007-06-08 09:23:23 +00:00
< 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" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *< / span > < span class = "identifier" > str< / 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 >
2011-12-24 17:51:57 +00:00
< span class = "identifier" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > template< / 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 = "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" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / 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" > s< / 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" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
2011-12-24 17:51:57 +00:00
< h5 >
< a name = "boost_regex.ref.regex_match.h0" > < / a >
< span > < a name = "boost_regex.ref.regex_match.description" > < / a > < / span > < a class = "link" href = "regex_match.html#boost_regex.ref.regex_match.description" > Description< / a >
2007-12-14 10:11:21 +00:00
< / h5 >
< 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" > Allocator< / 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 >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > first< / span > < span class = "special" > ,< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > last< / span > < span class = "special" > ,< / span >
< span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "special" > ,< / span > < span class = "identifier" > Allocator< / span > < span class = "special" > > & < / span > < span class = "identifier" > m< / 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" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Requires< / strong > < / span > : Type BidirectionalIterator meets
2007-06-08 09:23:23 +00:00
the requirements of a Bidirectional Iterator (24.1.4).
< / p >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Effects< / strong > < / span > : Determines whether there is an
2007-06-08 09:23:23 +00:00
exact match between the regular expression < span class = "emphasis" > < em > e< / em > < / span > , and all
of the character sequence [first, last), parameter < span class = "emphasis" > < em > flags< / em > < / span >
2008-12-23 11:46:00 +00:00
(see < a class = "link" href = "match_flag_type.html" title = "match_flag_type" > < code class = "computeroutput" > < span class = "identifier" > match_flag_type< / span > < / code > < / a > )
2007-06-08 09:23:23 +00:00
is used to control how the expression is matched against the character sequence.
Returns true if such a match exists, false otherwise.
< / p >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Throws< / strong > < / span > : < code class = "computeroutput" > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > runtime_error< / span > < / code >
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-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Postconditions< / strong > < / span > : If the function returns
2007-06-08 09:23:23 +00:00
false, then the effect on parameter < span class = "emphasis" > < em > m< / em > < / span > is undefined,
otherwise the effects on parameter < span class = "emphasis" > < em > m< / em > < / span > are given in the
table:
< / p >
< div class = "informaltable" > < table class = "table" >
< colgroup >
< col >
< col >
< / colgroup >
< thead > < tr >
< th >
2010-07-08 22:49:58 +00:00
< p >
Element
< / p >
2007-06-08 09:23:23 +00:00
< / th >
< th >
2010-07-08 22:49:58 +00:00
< p >
Value
< / p >
2007-06-08 09:23:23 +00:00
< / th >
< / tr > < / thead >
< tbody >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > e< / span > < span class = "special" > .< / span > < span class = "identifier" > mark_count< / span > < span class = "special" > ()< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > empty< / span > < span class = "special" > ()< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "keyword" > false< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > first< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > first< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > last< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > first< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > prefix< / span > < span class = "special" > ().< / span > < span class = "identifier" > matched< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "keyword" > false< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > first< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > last< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > last< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > last< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > suffix< / span > < span class = "special" > ().< / span > < span class = "identifier" > matched< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "keyword" > false< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > [< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > first< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > first< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > [< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > second< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > last< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > [< / span > < span class = "number" > 0< / span > < span class = "special" > ].< / span > < span class = "identifier" > matched< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< 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 >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > [< / span > < span class = "identifier" > n< / span > < span class = "special" > ].< / span > < span class = "identifier" > first< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
For all integers < code class = "computeroutput" > < span class = "identifier" > n< / span > < span class = "special" > < < / span > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / code > , 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 < code class = "computeroutput" > < span class = "identifier" > last< / span > < / code > .
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > [< / span > < span class = "identifier" > n< / span > < span class = "special" > ].< / span > < span class = "identifier" > second< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
For all integers < code class = "computeroutput" > < span class = "identifier" > n< / span > < span class = "special" > < < / span > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / code > , 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 < code class = "computeroutput" > < span class = "identifier" > last< / span > < / code > .
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< tr >
< td >
2010-07-08 22:49:58 +00:00
< p >
< code class = "computeroutput" > < span class = "identifier" > m< / span > < span class = "special" > [< / span > < span class = "identifier" > n< / span > < span class = "special" > ].< / span > < span class = "identifier" > matched< / span > < / code >
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< td >
2010-07-08 22:49:58 +00:00
< p >
For all integers < code class = "computeroutput" > < span class = "identifier" > n< / span > < span class = "special" > < < / span > < span class = "identifier" > m< / span > < span class = "special" > .< / span > < span class = "identifier" > size< / span > < span class = "special" > ()< / span > < / code > , true if sub-expression < span class = "emphasis" > < em > n< / em > < / span >
participated in the match, false otherwise.
< / p >
2007-06-08 09:23:23 +00:00
< / td >
< / tr >
< / tbody >
< / table > < / div >
2007-12-14 10:11:21 +00:00
< 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 = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > first< / span > < span class = "special" > ,< / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "identifier" > last< / 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" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Effects< / strong > < / span > : Behaves "as if" by constructing
an instance of < code class = "computeroutput" > < span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "identifier" > BidirectionalIterator< / span > < span class = "special" > > < / span > < span class = "identifier" > what< / span > < / code > ,
and then returning the result of < code class = "computeroutput" > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > first< / span > < span class = "special" > ,< / span > < span class = "identifier" > last< / span > < span class = "special" > ,< / span > < span class = "identifier" > what< / span > < span class = "special" > ,< / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span >
< span class = "identifier" > flags< / span > < span class = "special" > )< / span > < / code > .
2007-06-08 09:23:23 +00:00
< / p >
2007-12-14 10:11:21 +00:00
< 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" > Allocator< / span > < span class = "special" > ,< / span > < span class = "keyword" > class< / span > < span class = "identifier" > traits< / span > < span class = "special" > > < / span >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *< / span > < span class = "identifier" > str< / span > < span class = "special" > ,< / span > < span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *,< / span > < span class = "identifier" > Allocator< / span > < span class = "special" > > & < / span > < span class = "identifier" > m< / 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" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Effects< / strong > < / span > : Returns the result of < code class = "computeroutput" > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > str< / span > < span class = "special" > ,< / span > < span class = "identifier" > str< / span >
2007-06-08 09:23:23 +00:00
< span class = "special" > +< / span > < span class = "identifier" > char_traits< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > > ::< / span > < span class = "identifier" > length< / span > < span class = "special" > (< / span > < span class = "identifier" > str< / span > < span class = "special" > ),< / span >
2007-12-14 10:11:21 +00:00
< span class = "identifier" > m< / span > < span class = "special" > ,< / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span > < span class = "identifier" > flags< / span > < span class = "special" > )< / span > < / code > .
2007-06-08 09:23:23 +00:00
< / p >
2007-12-14 10:11:21 +00:00
< pre class = "programlisting" > < span class = "keyword" > template< / 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 = "keyword" > class< / span > < span class = "identifier" > Allocator< / span > < span class = "special" > ,< / span >
2007-06-08 09:23:23 +00:00
< 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" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / 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" > s< / span > < span class = "special" > ,< / span >
2011-12-24 17:51:57 +00:00
< span class = "identifier" > match_results< / span > < span class = "special" > < < / span > < span class = "keyword" > typename< / 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" > Allocator< / span > < span class = "special" > > & < / span > < span class = "identifier" > m< / 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 >
2007-06-08 09:23:23 +00:00
< span class = "identifier" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Effects< / strong > < / span > : Returns the result of < code class = "computeroutput" > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > begin< / span > < span class = "special" > (),< / span > < span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > end< / span > < span class = "special" > (),< / span > < span class = "identifier" > m< / span > < span class = "special" > ,< / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span > < span class = "identifier" > flags< / span > < span class = "special" > )< / span > < / code > .
2007-06-08 09:23:23 +00:00
< / p >
2007-12-14 10:11:21 +00:00
< 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 >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "identifier" > charT< / span > < span class = "special" > *< / span > < span class = "identifier" > str< / 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" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Effects< / strong > < / span > : Returns the result of < code class = "computeroutput" > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > str< / span > < span class = "special" > ,< / span > < span class = "identifier" > str< / span >
2007-06-08 09:23:23 +00:00
< span class = "special" > +< / span > < span class = "identifier" > char_traits< / span > < span class = "special" > < < / span > < span class = "identifier" > charT< / span > < span class = "special" > > ::< / span > < span class = "identifier" > length< / span > < span class = "special" > (< / span > < span class = "identifier" > str< / span > < span class = "special" > ),< / span >
2007-12-14 10:11:21 +00:00
< span class = "identifier" > e< / span > < span class = "special" > ,< / span > < span class = "identifier" > flags< / span > < span class = "special" > )< / span > < / code > .
2007-06-08 09:23:23 +00:00
< / p >
2007-12-14 10:11:21 +00:00
< pre class = "programlisting" > < span class = "keyword" > template< / 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 = "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 >
2007-06-08 09:23:23 +00:00
< span class = "keyword" > bool< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / 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" > s< / 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" > match_flag_type< / span > < span class = "identifier" > flags< / span > < span class = "special" > =< / span > < span class = "identifier" > match_default< / span > < span class = "special" > );< / span >
< / pre >
< p >
2007-12-14 10:11:21 +00:00
< span class = "bold" > < strong > Effects< / strong > < / span > : Returns the result of < code class = "computeroutput" > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > begin< / span > < span class = "special" > (),< / span > < span class = "identifier" > s< / span > < span class = "special" > .< / span > < span class = "identifier" > end< / span > < span class = "special" > (),< / span > < span class = "identifier" > e< / span > < span class = "special" > ,< / span > < span class = "identifier" > flags< / span > < span class = "special" > )< / span > < / code > .
2007-06-08 09:23:23 +00:00
< / p >
2011-12-24 17:51:57 +00:00
< h5 >
< a name = "boost_regex.ref.regex_match.h1" > < / a >
< span > < a name = "boost_regex.ref.regex_match.examples" > < / a > < / span > < a class = "link" href = "regex_match.html#boost_regex.ref.regex_match.examples" > Examples< / a >
2007-12-14 10:11:21 +00:00
< / h5 >
2007-06-08 09:23:23 +00:00
< p >
The following example processes an ftp response:
< / p >
2011-12-24 17:51:57 +00:00
< pre class = "programlisting" > < span class = "preprocessor" > #include< / span > < span class = "special" > < < / span > < span class = "identifier" > stdlib< / span > < span class = "special" > .< / span > < span class = "identifier" > h< / 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 = "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" > iostream< / span > < span class = "special" > > < / span >
2007-06-08 09:23:23 +00:00
2011-12-24 17:51:57 +00:00
< span class = "keyword" > using< / span > < span class = "keyword" > namespace< / span > < span class = "identifier" > boost< / span > < span class = "special" > ;< / span >
2007-06-08 09:23:23 +00:00
2011-12-24 17:51:57 +00:00
< span class = "identifier" > regex< / span > < span class = "identifier" > expression< / span > < span class = "special" > (< / span > < span class = "string" > "([0-9]+)(\\-| |$)(.*)"< / span > < span class = "special" > );< / span >
2007-06-08 09:23:23 +00:00
2011-07-21 10:01:09 +00:00
< span class = "comment" > // process_ftp: < / span >
< span class = "comment" > // on success returns the ftp response code, and fills < / span >
< span class = "comment" > // msg with the ftp response message. < / span >
2011-12-24 17:51:57 +00:00
< span class = "keyword" > int< / span > < span class = "identifier" > process_ftp< / span > < span class = "special" > (< / span > < span class = "keyword" > const< / span > < span class = "keyword" > char< / span > < span class = "special" > *< / span > < span class = "identifier" > response< / 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" > msg< / span > < span class = "special" > )< / span >
< span class = "special" > {< / span >
< span class = "identifier" > cmatch< / span > < span class = "identifier" > what< / span > < span class = "special" > ;< / span >
< span class = "keyword" > if< / span > < span class = "special" > (< / span > < span class = "identifier" > regex_match< / span > < span class = "special" > (< / span > < span class = "identifier" > response< / span > < span class = "special" > ,< / span > < span class = "identifier" > what< / span > < span class = "special" > ,< / span > < span class = "identifier" > expression< / span > < span class = "special" > ))< / span >
< span class = "special" > {< / span >
2011-07-21 10:01:09 +00:00
< span class = "comment" > // what[0] contains the whole string < / span >
< span class = "comment" > // what[1] contains the response code < / span >
< span class = "comment" > // what[2] contains the separator character < / span >
< span class = "comment" > // what[3] contains the text message. < / span >
2011-12-24 17:51:57 +00:00
< span class = "keyword" > if< / span > < span class = "special" > (< / span > < span class = "identifier" > msg< / span > < span class = "special" > )< / span >
< span class = "identifier" > msg< / span > < span class = "special" > -> < / span > < span class = "identifier" > assign< / span > < span class = "special" > (< / span > < span class = "identifier" > what< / span > < span class = "special" > [< / span > < span class = "number" > 3< / span > < span class = "special" > ].< / span > < span class = "identifier" > first< / span > < span class = "special" > ,< / span > < span class = "identifier" > what< / span > < span class = "special" > [< / span > < span class = "number" > 3< / span > < span class = "special" > ].< / span > < span class = "identifier" > second< / span > < span class = "special" > );< / span >
< span class = "keyword" > return< / span > < span class = "identifier" > std< / span > < span class = "special" > ::< / span > < span class = "identifier" > atoi< / span > < span class = "special" > (< / span > < span class = "identifier" > what< / span > < span class = "special" > [< / span > < span class = "number" > 1< / span > < span class = "special" > ].< / span > < span class = "identifier" > first< / span > < span class = "special" > );< / span >
< span class = "special" > }< / span >
2011-07-21 10:01:09 +00:00
< span class = "comment" > // failure did not match < / span >
2011-12-24 17:51:57 +00:00
< span class = "keyword" > if< / span > < span class = "special" > (< / span > < span class = "identifier" > msg< / span > < span class = "special" > )< / span >
< span class = "identifier" > msg< / span > < span class = "special" > -> < / span > < span class = "identifier" > erase< / span > < span class = "special" > ();< / span >
< span class = "keyword" > return< / span > < span class = "special" > -< / span > < span class = "number" > 1< / span > < span class = "special" > ;< / span >
2007-06-08 09:23:23 +00:00
< 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 >
2011-07-21 10:01:09 +00:00
< td align = "right" > < div class = "copyright-footer" > Copyright © 1998-2010 John Maddock< p >
2007-11-07 03:23:31 +00:00
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 > )
2007-12-14 10:11:21 +00:00
< / p >
< / div > < / td >
2007-06-08 09:23:23 +00:00
< / tr > < / table >
< hr >
< div class = "spirit-nav" >
2010-07-08 22:49:58 +00:00
< a accesskey = "p" href = "sub_match.html" > < img src = "../../../../../../doc/src/images/prev.png" alt = "Prev" > < / a > < a accesskey = "u" href = "../ref.html" > < img src = "../../../../../../doc/src/images/up.png" alt = "Up" > < / a > < a accesskey = "h" href = "../../index.html" > < img src = "../../../../../../doc/src/images/home.png" alt = "Home" > < / a > < a accesskey = "n" href = "regex_search.html" > < img src = "../../../../../../doc/src/images/next.png" alt = "Next" > < / a >
2007-06-08 09:23:23 +00:00
< / div >
< / body >
< / html >