Fix typos reported by Sebastian Pipping.

[SVN r42025]
This commit is contained in:
John Maddock
2007-12-14 10:11:21 +00:00
parent 31668ed4be
commit 71fdd5eb44
86 changed files with 3114 additions and 3578 deletions

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> bad_expression</title>
<title>bad_expression</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="regex_token_iterator.html" title=" regex_token_iterator">
<link rel="next" href="syntax_option_type.html" title=" syntax_option_type">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="regex_token_iterator.html" title="regex_token_iterator">
<link rel="next" href="syntax_option_type.html" title="syntax_option_type">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,21 +24,20 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.bad_expression"></a><a href="bad_expression.html" title=" bad_expression"> bad_expression</a></h3></div></div></div>
<a name="boost_regex.ref.bad_expression.synopsis"></a><h4>
<a name="id563003"></a>
<a name="boost_regex.ref.bad_expression"></a><a href="bad_expression.html" title="bad_expression"> bad_expression</a>
</h3></div></div></div>
<a name="boost_regex.ref.bad_expression.synopsis"></a><h5>
<a name="id596250"></a>
<a href="bad_expression.html#boost_regex.ref.bad_expression.synopsis">Synopsis</a>
</h4>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pattern_except</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pattern_except</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
The class <tt class="computeroutput"><span class="identifier">regex_error</span></tt> defines
The class <code class="computeroutput"><span class="identifier">regex_error</span></code> defines
the type of objects thrown as exceptions to report errors during the conversion
from a string representing a regular expression to a finite state machine.
</p>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
<span class="keyword">class</span> <span class="identifier">regex_error</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span>
<span class="special">{</span>
@ -54,49 +53,47 @@
</span>
<span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.bad_expression.description"></a><h4>
<a name="id563510"></a>
<a name="boost_regex.ref.bad_expression.description"></a><h5>
<a name="id596753"></a>
<a href="bad_expression.html#boost_regex.ref.bad_expression.description">Description</a>
</h4>
<pre class="programlisting">
<span class="identifier">regex_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">error_type</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <span class="identifier">pos</span><span class="special">);</span>
</h5>
<pre class="programlisting"><span class="identifier">regex_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">error_type</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <span class="identifier">pos</span><span class="special">);</span>
<span class="identifier">regex_error</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">error_type</span> <span class="identifier">err</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects:</b></span> Constructs an object of class regex_error.
<span class="bold"><strong>Effects:</strong></span> Constructs an object of class regex_error.
</p>
<pre class="programlisting">
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">error_type</span> <span class="identifier">code</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">error_type</span> <span class="identifier">code</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects:</b></span> returns the error code that represents
<span class="bold"><strong>Effects:</strong></span> returns the error code that represents
parsing error that occurred.
</p>
<pre class="programlisting">
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <span class="identifier">position</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <span class="identifier">position</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects:</b></span> returns the location in the expression
<span class="bold"><strong>Effects:</strong></span> returns the location in the expression
where parsing stopped.
</p>
<p>
Footnotes: the choice of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></tt>
as the base class for <tt class="computeroutput"><span class="identifier">regex_error</span></tt>
Footnotes: the choice of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></code>
as the base class for <code class="computeroutput"><span class="identifier">regex_error</span></code>
is moot; depending upon how the library is used exceptions may be either
logic errors (programmer supplied expressions) or run time errors (user supplied
expressions). The library previously used <tt class="computeroutput"><span class="identifier">bad_pattern</span></tt>
and <tt class="computeroutput"><span class="identifier">bad_expression</span></tt> for errors,
these have been replaced by the single class <tt class="computeroutput"><span class="identifier">regex_error</span></tt>
expressions). The library previously used <code class="computeroutput"><span class="identifier">bad_pattern</span></code>
and <code class="computeroutput"><span class="identifier">bad_expression</span></code> for errors,
these have been replaced by the single class <code class="computeroutput"><span class="identifier">regex_error</span></code>
to keep the library in synchronization with the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
Report on C++ Library Extensions</a>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Concepts</title>
<title>Concepts</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="posix.html" title=" POSIX Compatible C API's">
<link rel="next" href="concepts/charT_concept.html" title=" charT Requirements">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="posix.html" title="POSIX Compatible C API's">
<link rel="next" href="concepts/charT_concept.html" title="charT Requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,21 +24,23 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.concepts"></a><a href="concepts.html" title=" Concepts"> Concepts</a></h3></div></div></div>
<a name="boost_regex.ref.concepts"></a><a href="concepts.html" title="Concepts"> Concepts</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="concepts/charT_concept.html"> charT Requirements</a></span></dt>
<dt><span class="section"><a href="concepts/traits_concept.html"> Traits Class
Requirements</a></span></dt>
<dt><span class="section"><a href="concepts/iterator_concepts.html"> Iterator
Rrequirements</a></span></dt>
Requirements</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,14 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> charT Requirements</title>
<title>charT Requirements</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../concepts.html" title=" Concepts">
<link rel="prev" href="../concepts.html" title=" Concepts">
<link rel="next" href="traits_concept.html" title=" Traits Class
Requirements">
<link rel="up" href="../concepts.html" title="Concepts">
<link rel="prev" href="../concepts.html" title="Concepts">
<link rel="next" href="traits_concept.html" title="Traits Class Requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -25,16 +24,17 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.concepts.charT_concept"></a><a href="charT_concept.html" title=" charT Requirements"> charT Requirements</a></h4></div></div></div>
<a name="boost_regex.ref.concepts.charT_concept"></a><a href="charT_concept.html" title="charT Requirements"> charT Requirements</a>
</h4></div></div></div>
<p>
Type <tt class="computeroutput"><span class="identifier">charT</span></tt> used a template
argument to class template <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a>, must have a trivial
Type <code class="computeroutput"><span class="identifier">charT</span></code> used a template
argument to class template <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>, must have a trivial
default constructor, copy constructor, assignment operator, and destructor.
In addition the following requirements must be met for objects; <span class="emphasis"><em>c</em></span>
of type <tt class="computeroutput"><span class="identifier">charT</span></tt>, <span class="emphasis"><em>c1</em></span>
and <span class="emphasis"><em>c2</em></span> of type <tt class="computeroutput"><span class="identifier">charT</span>
<span class="keyword">const</span></tt>, and <span class="emphasis"><em>i</em></span>
of type <tt class="computeroutput"><span class="keyword">int</span></tt>:
of type <code class="computeroutput"><span class="identifier">charT</span></code>, <span class="emphasis"><em>c1</em></span>
and <span class="emphasis"><em>c2</em></span> of type <code class="computeroutput"><span class="identifier">charT</span>
<span class="keyword">const</span></code>, and <span class="emphasis"><em>i</em></span>
of type <code class="computeroutput"><span class="keyword">int</span></code>:
</p>
<div class="informaltable"><table class="table">
<colgroup>
@ -258,10 +258,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,14 +1,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Iterator
Rrequirements</title>
<title>Iterator Requirements</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../concepts.html" title=" Concepts">
<link rel="prev" href="traits_concept.html" title=" Traits Class
Requirements">
<link rel="up" href="../concepts.html" title="Concepts">
<link rel="prev" href="traits_concept.html" title="Traits Class Requirements">
<link rel="next" href="../deprecated_interfaces.html" title="Deprecated Interfaces">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -26,19 +24,20 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.concepts.iterator_concepts"></a><a href="iterator_concepts.html" title=" Iterator
Rrequirements"> Iterator
Rrequirements</a></h4></div></div></div>
<a name="boost_regex.ref.concepts.iterator_concepts"></a><a href="iterator_concepts.html" title="Iterator Requirements"> Iterator
Requirements</a>
</h4></div></div></div>
<p>
The regular expression algorithms (and iterators) take all require a Bidirectional-Iterator.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,15 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Traits Class
Requirements</title>
<title>Traits Class Requirements</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../concepts.html" title=" Concepts">
<link rel="prev" href="charT_concept.html" title=" charT Requirements">
<link rel="next" href="iterator_concepts.html" title=" Iterator
Rrequirements">
<link rel="up" href="../concepts.html" title="Concepts">
<link rel="prev" href="charT_concept.html" title="charT Requirements">
<link rel="next" href="iterator_concepts.html" title="Iterator Requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -26,37 +24,37 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.concepts.traits_concept"></a><a href="traits_concept.html" title=" Traits Class
Requirements"> Traits Class
Requirements</a></h4></div></div></div>
<a name="boost_regex.ref.concepts.traits_concept"></a><a href="traits_concept.html" title="Traits Class Requirements"> Traits Class
Requirements</a>
</h4></div></div></div>
<p>
There are two sets of requirements for the <tt class="computeroutput"><span class="identifier">traits</span></tt>
template argument to <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a>: a mininal interface
There are two sets of requirements for the <code class="computeroutput"><span class="identifier">traits</span></code>
template argument to <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>: a mininal interface
(which is part of the regex standardization proposal), and an optional
Boost-specific enhanced interface.
</p>
<a name="boost_regex.ref.concepts.traits_concept.minimal_requirements_"></a><h4>
<a name="id589905"></a>
<a name="boost_regex.ref.concepts.traits_concept.minimal_requirements_"></a><h5>
<a name="id622823"></a>
<a href="traits_concept.html#boost_regex.ref.concepts.traits_concept.minimal_requirements_">Minimal
requirements.</a>
</h4>
</h5>
<p>
In the following table <tt class="computeroutput"><span class="identifier">X</span></tt>
In the following table <code class="computeroutput"><span class="identifier">X</span></code>
denotes a traits class defining types and functions for the character container
type <tt class="computeroutput"><span class="identifier">charT</span></tt>; <span class="emphasis"><em>u</em></span>
is an object of type <tt class="computeroutput"><span class="identifier">X</span></tt>;
<span class="emphasis"><em>v</em></span> is an object of type <tt class="computeroutput"><span class="keyword">const</span>
<span class="identifier">X</span></tt>; <span class="emphasis"><em>p</em></span> is
a value of type <tt class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span></tt>; <span class="emphasis"><em>I1</em></span> and <span class="emphasis"><em>I2</em></span>
are Input Iterators; <span class="emphasis"><em>c</em></span> is a value of type <tt class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span></tt>;
<span class="emphasis"><em>s</em></span> is an object of type <tt class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">string_type</span></tt>;
<span class="emphasis"><em>cs</em></span> is an object of type <tt class="computeroutput"><span class="keyword">const</span>
<span class="identifier">X</span><span class="special">::</span><span class="identifier">string_type</span></tt>; <span class="emphasis"><em>b</em></span> is
a value of type <tt class="computeroutput"><span class="keyword">bool</span></tt>; <span class="emphasis"><em>I</em></span>
is a value of type <tt class="computeroutput"><span class="keyword">int</span></tt>; <span class="emphasis"><em>F1</em></span>
and <span class="emphasis"><em>F2</em></span> are values of type <tt class="computeroutput"><span class="keyword">const</span>
<span class="identifier">charT</span><span class="special">*</span></tt>;
and <span class="emphasis"><em>loc</em></span> is an object of type <tt class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">locale_type</span></tt>.
type <code class="computeroutput"><span class="identifier">charT</span></code>; <span class="emphasis"><em>u</em></span>
is an object of type <code class="computeroutput"><span class="identifier">X</span></code>;
<span class="emphasis"><em>v</em></span> is an object of type <code class="computeroutput"><span class="keyword">const</span>
<span class="identifier">X</span></code>; <span class="emphasis"><em>p</em></span> is
a value of type <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span></code>; <span class="emphasis"><em>I1</em></span> and <span class="emphasis"><em>I2</em></span>
are Input Iterators; <span class="emphasis"><em>c</em></span> is a value of type <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span></code>;
<span class="emphasis"><em>s</em></span> is an object of type <code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">string_type</span></code>;
<span class="emphasis"><em>cs</em></span> is an object of type <code class="computeroutput"><span class="keyword">const</span>
<span class="identifier">X</span><span class="special">::</span><span class="identifier">string_type</span></code>; <span class="emphasis"><em>b</em></span> is
a value of type <code class="computeroutput"><span class="keyword">bool</span></code>; <span class="emphasis"><em>I</em></span>
is a value of type <code class="computeroutput"><span class="keyword">int</span></code>; <span class="emphasis"><em>F1</em></span>
and <span class="emphasis"><em>F2</em></span> are values of type <code class="computeroutput"><span class="keyword">const</span>
<span class="identifier">charT</span><span class="special">*</span></code>;
and <span class="emphasis"><em>loc</em></span> is an object of type <code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">locale_type</span></code>.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@ -329,7 +327,7 @@
<tr>
<td>
<p>
v.value(c, i)
v.value(c, I)
</p>
</td>
<td>
@ -380,39 +378,19 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
v.error_string(i)
</p>
</td>
<td>
<p>
std::string
</p>
</td>
<td>
<p>
Returns a human readable error string for the error condition i,
where i is one of the values enumerated by type regex_constants::error_type.
If the value i is not recognized then returns the string "Unknown
error" or a localized equivalent.
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="boost_regex.ref.concepts.traits_concept.additional_optional_requirements"></a><h4>
<a name="id590748"></a>
<a name="boost_regex.ref.concepts.traits_concept.additional_optional_requirements"></a><h5>
<a name="id623626"></a>
<a href="traits_concept.html#boost_regex.ref.concepts.traits_concept.additional_optional_requirements">Additional
Optional Requirements</a>
</h4>
</h5>
<p>
The following additional requirements are strictly optional, however in
order for <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a>
order for <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>
to take advantage of these additional interfaces, all of the following
requirements must be met; <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a> will detect the presence
or absense of the member <tt class="computeroutput"><span class="identifier">boost_extensions_tag</span></tt>
requirements must be met; <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> will detect the presence
or absense of the member <code class="computeroutput"><span class="identifier">boost_extensions_tag</span></code>
and configure itself appropriately.
</p>
<div class="informaltable"><table class="table">
@ -493,8 +471,8 @@
that signifies the meaning of character c within the regular expression
grammar, when c has been preceded by an escape character. Precondition:
if b is the character preceding c in the expression being parsed
then: <tt class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">syntax_type</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span>
<span class="special">==</span> <span class="identifier">syntax_escape</span></tt>
then: <code class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">syntax_type</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span>
<span class="special">==</span> <span class="identifier">syntax_escape</span></code>
</p>
</td>
</tr>
@ -512,9 +490,9 @@
<td>
<p>
Returns a character d such that: for any character d that is to
be considered equivalent to c then <tt class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="keyword">false</span><span class="special">)==</span><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">d</span><span class="special">,</span><span class="keyword">false</span><span class="special">)</span></tt>. Likewise for all characters C
be considered equivalent to c then <code class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="keyword">false</span><span class="special">)==</span><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">d</span><span class="special">,</span><span class="keyword">false</span><span class="special">)</span></code>. Likewise for all characters C
that are to be considered equivalent to c when comparisons are
to be performed without regard to case, then <tt class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="keyword">true</span><span class="special">)==</span><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">C</span><span class="special">,</span><span class="keyword">true</span><span class="special">)</span></tt>.
to be performed without regard to case, then <code class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span><span class="keyword">true</span><span class="special">)==</span><span class="identifier">v</span><span class="special">.</span><span class="identifier">translate</span><span class="special">(</span><span class="identifier">C</span><span class="special">,</span><span class="keyword">true</span><span class="special">)</span></code>.
</p>
</td>
</tr>
@ -531,9 +509,9 @@
</td>
<td>
<p>
Behaves as follows: if <tt class="computeroutput"><span class="identifier">p</span>
<span class="special">==</span> <span class="identifier">q</span></tt>
or if <tt class="computeroutput"><span class="special">*</span><span class="identifier">p</span></tt>
Behaves as follows: if <code class="computeroutput"><span class="identifier">p</span>
<span class="special">==</span> <span class="identifier">q</span></code>
or if <code class="computeroutput"><span class="special">*</span><span class="identifier">p</span></code>
is not a digit character then returns -1. Otherwise performs formatted
numeric input on the sequence [p,q) and returns the result as an
int. Postcondition: either p == q or *p is a non-digit character.
@ -543,7 +521,7 @@
<tr>
<td>
<p>
v.error_string(i)
v.error_string(I)
</p>
</td>
<td>
@ -555,8 +533,8 @@
<p>
Returns a human readable error string for the error condition i,
where i is one of the values enumerated by type regex_constants::error_type.
If the value i is not recognized then returns the string "Unknown
error" or a localized equivalent.
If the value <span class="emphasis"><em>I</em></span> is not recognized then returns
the string "Unknown error" or a localized equivalent.
</p>
</td>
</tr>
@ -601,10 +579,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -3,13 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Deprecated Interfaces</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="concepts/iterator_concepts.html" title=" Iterator
Rrequirements">
<link rel="next" href="deprecated_interfaces/regex_format.html" title="
regex_format (Deprecated)">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="concepts/iterator_concepts.html" title="Iterator Requirements">
<link rel="next" href="deprecated_interfaces/regex_format.html" title="regex_format (Deprecated)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -26,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.deprecated_interfaces"></a><a href="deprecated_interfaces.html" title="Deprecated Interfaces">Deprecated Interfaces</a></h3></div></div></div>
<a name="boost_regex.ref.deprecated_interfaces"></a><a href="deprecated_interfaces.html" title="Deprecated Interfaces">Deprecated Interfaces</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="deprecated_interfaces/regex_format.html">
regex_format (Deprecated)</a></span></dt>
@ -37,21 +36,14 @@
<dt><span class="section"><a href="deprecated_interfaces/old_regex.html"> High
Level Class RegEx (Deprecated)</a></span></dt>
</dl></div>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,14 +1,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> High
Level Class RegEx (Deprecated)</title>
<title>High Level Class RegEx (Deprecated)</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../deprecated_interfaces.html" title="Deprecated Interfaces">
<link rel="prev" href="regex_split.html" title="
regex_split (deprecated)">
<link rel="prev" href="regex_split.html" title="regex_split (deprecated)">
<link rel="next" href="../../background_information.html" title="Background Information">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -26,17 +24,16 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.old_regex"></a><a href="old_regex.html" title=" High
Level Class RegEx (Deprecated)"> High
Level Class RegEx (Deprecated)</a></h4></div></div></div>
<a name="boost_regex.ref.deprecated_interfaces.old_regex"></a><a href="old_regex.html" title="High Level Class RegEx (Deprecated)"> High
Level Class RegEx (Deprecated)</a>
</h4></div></div></div>
<p>
The high level wrapper class RegEx is now deprecated and does not form
part of the regular expression standardization proposal. This type still
exists, and existing code will continue to compile, however the following
documentation is unlikely to be further updated.
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
The class RegEx provides a high level simplified interface to the regular
@ -44,8 +41,7 @@
regular expressions always follow the "normal" syntax - that
is the same as the perl / ECMAScript synatx.
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="special">(*</span><span class="identifier">GrepCallback</span><span class="special">)(</span><span class="keyword">const</span> <span class="identifier">RegEx</span><span class="special">&amp;</span> <span class="identifier">expression</span><span class="special">);</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="special">(*</span><span class="identifier">GrepCallback</span><span class="special">)(</span><span class="keyword">const</span> <span class="identifier">RegEx</span><span class="special">&amp;</span> <span class="identifier">expression</span><span class="special">);</span>
<span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="special">(*</span><span class="identifier">GrepFileCallback</span><span class="special">)(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">file</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RegEx</span><span class="special">&amp;</span> <span class="identifier">expression</span><span class="special">);</span>
<span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="special">(*</span><span class="identifier">FindFilesCallback</span><span class="special">)(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">file</span><span class="special">);</span>
@ -138,7 +134,7 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">();</span></tt>
<code class="computeroutput"><span class="identifier">RegEx</span><span class="special">();</span></code>
</p>
</td>
<td>
@ -151,7 +147,7 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RegEx</span><span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span></tt>
<code class="computeroutput"><span class="identifier">RegEx</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RegEx</span><span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span></code>
</p>
</td>
<td>
@ -164,40 +160,40 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">bool</span>
<code class="computeroutput"><span class="identifier">RegEx</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">bool</span>
<span class="identifier">icase</span> <span class="special">=</span>
<span class="keyword">false</span><span class="special">);</span></tt>
<span class="keyword">false</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Constructs an instance of RegEx, setting the expression to <span class="emphasis"><em>c</em></span>,
if <span class="emphasis"><em>icase</em></span> is true then matching is insensitive
to case, otherwise it is sensitive to case. Throws <a href="../bad_expression.html" title=" bad_expression"><tt class="computeroutput"><span class="identifier">bad_expression</span></tt></a> on failure.
to case, otherwise it is sensitive to case. Throws <a href="../bad_expression.html" title="bad_expression"><code class="computeroutput"><span class="identifier">bad_expression</span></code></a> on failure.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="keyword">bool</span>
<code class="computeroutput"><span class="identifier">RegEx</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="keyword">bool</span>
<span class="identifier">icase</span> <span class="special">=</span>
<span class="keyword">false</span><span class="special">);</span></tt>
<span class="keyword">false</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Constructs an instance of RegEx, setting the expression to <span class="emphasis"><em>s</em></span>,
if <span class="emphasis"><em>icase</em></span> is true then matching is insensitive
to case, otherwise it is sensitive to case. Throws <a href="../bad_expression.html" title=" bad_expression"><tt class="computeroutput"><span class="identifier">bad_expression</span></tt></a> on failure.
to case, otherwise it is sensitive to case. Throws <a href="../bad_expression.html" title="bad_expression"><code class="computeroutput"><span class="identifier">bad_expression</span></code></a> on failure.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">&amp;</span>
<span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">RegEx</span><span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span></tt>
<code class="computeroutput"><span class="identifier">RegEx</span><span class="special">&amp;</span>
<span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">RegEx</span><span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span></code>
</p>
</td>
<td>
@ -209,68 +205,68 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">&amp;</span>
<span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">);</span></tt>
<code class="computeroutput"><span class="identifier">RegEx</span><span class="special">&amp;</span>
<span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Assignment operator, equivalent to calling <tt class="computeroutput"><span class="identifier">SetExpression</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="keyword">false</span><span class="special">)</span></tt>. Throws <a href="../bad_expression.html" title=" bad_expression"><tt class="computeroutput"><span class="identifier">bad_expression</span></tt></a> on failure.
Assignment operator, equivalent to calling <code class="computeroutput"><span class="identifier">SetExpression</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="keyword">false</span><span class="special">)</span></code>. Throws <a href="../bad_expression.html" title="bad_expression"><code class="computeroutput"><span class="identifier">bad_expression</span></code></a> on failure.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">&amp;</span>
<span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span></tt>
<code class="computeroutput"><span class="identifier">RegEx</span><span class="special">&amp;</span>
<span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Assignment operator, equivalent to calling <tt class="computeroutput"><span class="identifier">SetExpression</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="keyword">false</span><span class="special">)</span></tt>. Throws <a href="../bad_expression.html" title=" bad_expression"><tt class="computeroutput"><span class="identifier">bad_expression</span></tt></a> on failure.
Assignment operator, equivalent to calling <code class="computeroutput"><span class="identifier">SetExpression</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="keyword">false</span><span class="special">)</span></code>. Throws <a href="../bad_expression.html" title="bad_expression"><code class="computeroutput"><span class="identifier">bad_expression</span></code></a> on failure.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">SetExpression</span><span class="special">(</span><span class="identifier">constchar</span><span class="special">*</span>
<span class="identifier">p</span><span class="special">,</span>
<span class="keyword">bool</span> <span class="identifier">icase</span>
<span class="special">=</span> <span class="keyword">false</span><span class="special">);</span></tt>
<span class="special">=</span> <span class="keyword">false</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Sets the current expression to <span class="emphasis"><em>p</em></span>, if <span class="emphasis"><em>icase</em></span>
is true then matching is insensitive to case, otherwise it is sensitive
to case. Throws <a href="../bad_expression.html" title=" bad_expression"><tt class="computeroutput"><span class="identifier">bad_expression</span></tt></a> on failure.
to case. Throws <a href="../bad_expression.html" title="bad_expression"><code class="computeroutput"><span class="identifier">bad_expression</span></code></a> on failure.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">SetExpression</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="keyword">bool</span>
<span class="identifier">icase</span> <span class="special">=</span>
<span class="keyword">false</span><span class="special">);</span></tt>
<span class="keyword">false</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Sets the current expression to <span class="emphasis"><em>s</em></span>, if <span class="emphasis"><em>icase</em></span>
is true then matching is insensitive to case, otherwise it is sensitive
to case. Throws <a href="../bad_expression.html" title=" bad_expression"><tt class="computeroutput"><span class="identifier">bad_expression</span></tt></a> on failure.
to case. Throws <a href="../bad_expression.html" title="bad_expression"><code class="computeroutput"><span class="identifier">bad_expression</span></code></a> on failure.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">Expression</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></tt>
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">Expression</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code>
</p>
</td>
<td>
@ -282,17 +278,17 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Match</span><span class="special">(</span><span class="keyword">const</span>
<code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Match</span><span class="special">(</span><span class="keyword">const</span>
<span class="keyword">char</span><span class="special">*</span>
<span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Attempts to match the current expression against the text <span class="emphasis"><em>p</em></span>
using the match flags <span class="emphasis"><em>flags</em></span> - see <a href="../match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>. Returns
using the match flags <span class="emphasis"><em>flags</em></span> - see <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>. Returns
<span class="emphasis"><em>true</em></span> if the expression matches the whole of
the input string.
</p>
@ -301,17 +297,17 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Match</span><span class="special">(</span><span class="keyword">const</span>
<code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Match</span><span class="special">(</span><span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span>
<span class="identifier">s</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Attempts to match the current expression against the text <span class="emphasis"><em>s</em></span>
using the <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>flags</em></span>.
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
Returns <span class="emphasis"><em>true</em></span> if the expression matches the
whole of the input string.
</p>
@ -320,17 +316,17 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Search</span><span class="special">(</span><span class="keyword">const</span>
<code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Search</span><span class="special">(</span><span class="keyword">const</span>
<span class="keyword">char</span><span class="special">*</span>
<span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Attempts to find a match for the current expression somewhere in
the text <span class="emphasis"><em>p</em></span> using the <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>flags</em></span>.
the text <span class="emphasis"><em>p</em></span> using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
Returns <span class="emphasis"><em>true</em></span> if the match succeeds.
</p>
</td>
@ -338,17 +334,17 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Search</span><span class="special">(</span><span class="keyword">const</span>
<code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Search</span><span class="special">(</span><span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span>
<span class="identifier">s</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Attempts to find a match for the current expression somewhere in
the text <span class="emphasis"><em>s</em></span> using the <a href="../match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a> flags.
the text <span class="emphasis"><em>s</em></span> using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> flags.
Returns <span class="emphasis"><em>true</em></span> if the match succeeds.
</p>
</td>
@ -356,19 +352,19 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Grep</span><span class="special">(</span><span class="identifier">GrepCallback</span> <span class="identifier">cb</span><span class="special">,</span> <span class="keyword">const</span>
<span class="keyword">char</span><span class="special">*</span>
<span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the text <span class="emphasis"><em>p</em></span>
using the <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>flags</em></span>.
For each match found calls the call-back function cb as: <tt class="computeroutput"><span class="identifier">cb</span><span class="special">(*</span><span class="keyword">this</span><span class="special">);</span></tt>
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each match found calls the call-back function cb as: <code class="computeroutput"><span class="identifier">cb</span><span class="special">(*</span><span class="keyword">this</span><span class="special">);</span></code>
If at any stage the call-back function returns <span class="emphasis"><em>false</em></span>
then the grep operation terminates, otherwise continues until no
further matches are found. Returns the number of matches found.
@ -378,19 +374,19 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Grep</span><span class="special">(</span><span class="identifier">GrepCallback</span> <span class="identifier">cb</span><span class="special">,</span> <span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span>
<span class="identifier">s</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the text <span class="emphasis"><em>s</em></span>
using the <a href="../match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a> flags.
For each match found calls the call-back function cb as: <tt class="computeroutput"><span class="identifier">cb</span><span class="special">(*</span><span class="keyword">this</span><span class="special">);</span></tt>
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> flags.
For each match found calls the call-back function cb as: <code class="computeroutput"><span class="identifier">cb</span><span class="special">(*</span><span class="keyword">this</span><span class="special">);</span></code>
If at any stage the call-back function returns false then the grep
operation terminates, otherwise continues until no further matches
are found. Returns the number of matches found.
@ -400,18 +396,18 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Grep</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;&amp;</span>
<span class="identifier">v</span><span class="special">,</span>
<span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">boost</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></tt>
<span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the text <span class="emphasis"><em>p</em></span>
using the <a href="../match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a> flags.
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> flags.
For each match pushes a copy of what matched onto <span class="emphasis"><em>v</em></span>.
Returns the number of matches found.
</p>
@ -420,18 +416,18 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Grep</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;&amp;</span>
<span class="identifier">v</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">boost</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></tt>
<span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the text <span class="emphasis"><em>s</em></span>
using the <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>flags</em></span>.
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each match pushes a copy of what matched onto <span class="emphasis"><em>v</em></span>.
Returns the number of matches found.
</p>
@ -440,18 +436,18 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Grep</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">&gt;&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span>
<span class="keyword">char</span><span class="special">*</span>
<span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the text <span class="emphasis"><em>p</em></span>
using the <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>flags</em></span>.
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each match pushes the starting index of what matched onto
<span class="emphasis"><em>v</em></span>. Returns the number of matches found.
</p>
@ -460,18 +456,18 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Grep</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">&gt;&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span>
<span class="identifier">s</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the text <span class="emphasis"><em>s</em></span>
using the <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>flags</em></span>.
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each match pushes the starting index of what matched onto
<span class="emphasis"><em>v</em></span>. Returns the number of matches found.
</p>
@ -480,20 +476,20 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">GrepFiles</span><span class="special">(</span><span class="identifier">GrepFileCallback</span> <span class="identifier">cb</span><span class="special">,</span> <span class="keyword">const</span>
<span class="keyword">char</span><span class="special">*</span>
<span class="identifier">files</span><span class="special">,</span>
<span class="keyword">bool</span> <span class="identifier">recurse</span>
<span class="special">=</span> <span class="keyword">false</span><span class="special">,</span> <span class="identifier">boost</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></tt>
<span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the files files
using the <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>flags</em></span>.
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each match calls the call-back function cb. If the call-back
returns false then the algorithm returns without considering further
matches in the current file, or any further files.
@ -507,7 +503,7 @@
Returns the total number of matches found.
</p>
<p>
May throw an exception derived from <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></tt>
May throw an exception derived from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></code>
if file io fails.
</p>
</td>
@ -515,20 +511,20 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">GrepFiles</span><span class="special">(</span><span class="identifier">GrepFileCallback</span> <span class="identifier">cb</span><span class="special">,</span> <span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span>
<span class="identifier">files</span><span class="special">,</span>
<span class="keyword">bool</span> <span class="identifier">recurse</span>
<span class="special">=</span> <span class="keyword">false</span><span class="special">,</span> <span class="identifier">boost</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></tt>
<span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Finds all matches of the current expression in the files files
using the <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>flags</em></span>.
using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each match calls the call-back function cb.
</p>
<p>
@ -545,7 +541,7 @@
Returns the total number of matches found.
</p>
<p>
May throw an exception derived from <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></tt>
May throw an exception derived from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></code>
if file io fails.
</p>
</td>
@ -553,20 +549,20 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">FindFiles</span><span class="special">(</span><span class="identifier">FindFilesCallback</span> <span class="identifier">cb</span><span class="special">,</span> <span class="keyword">const</span>
<span class="keyword">char</span><span class="special">*</span>
<span class="identifier">files</span><span class="special">,</span>
<span class="keyword">bool</span> <span class="identifier">recurse</span>
<span class="special">=</span> <span class="keyword">false</span><span class="special">,</span> <span class="identifier">boost</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></tt>
<span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Searches files to find all those which contain at least one match
of the current expression using the <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>flags</em></span>.
of the current expression using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each matching file calls the call-back function cb. If the
call-back returns false then the algorithm returns without considering
any further files.
@ -580,7 +576,7 @@
Returns the total number of files found.
</p>
<p>
May throw an exception derived from <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></tt>
May throw an exception derived from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></code>
if file io fails.
</p>
</td>
@ -588,20 +584,20 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">FindFiles</span><span class="special">(</span><span class="identifier">FindFilesCallback</span> <span class="identifier">cb</span><span class="special">,</span> <span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span>
<span class="identifier">files</span><span class="special">,</span>
<span class="keyword">bool</span> <span class="identifier">recurse</span>
<span class="special">=</span> <span class="keyword">false</span><span class="special">,</span> <span class="identifier">boost</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></tt>
<span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
Searches files to find all those which contain at least one match
of the current expression using the <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>flags</em></span>.
of the current expression using the <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a> <span class="emphasis"><em>flags</em></span>.
For each matching file calls the call-back function cb.
</p>
<p>
@ -617,7 +613,7 @@
Returns the total number of files found.
</p>
<p>
May throw an exception derived from <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></tt>
May throw an exception derived from <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></code>
if file io fails.
</p>
</td>
@ -625,14 +621,14 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">Merge</span><span class="special">(</span><span class="keyword">const</span>
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">Merge</span><span class="special">(</span><span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span>
<span class="identifier">in</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span> <span class="keyword">bool</span>
<span class="identifier">copy</span> <span class="special">=</span>
<span class="keyword">true</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
@ -645,22 +641,22 @@
If <span class="emphasis"><em>copy</em></span> is true then all unmatched sections
of input are copied unchanged to output, if the flag <span class="emphasis"><em>format_first_only</em></span>
is set then only the first occurance of the pattern found is replaced.
Returns the new string. See also <a href="../../format.html" title=" Search and Replace Format String Syntax">format
string syntax</a>, and <a href="../match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>.
Returns the new string. See also <a href="../../format.html" title="Search and Replace Format String Syntax">format
string syntax</a>, and <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">Merge</span><span class="special">(</span><span class="keyword">const</span>
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">Merge</span><span class="special">(</span><span class="keyword">const</span>
<span class="keyword">char</span><span class="special">*</span>
<span class="identifier">in</span><span class="special">,</span>
<span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">fmt</span><span class="special">,</span> <span class="keyword">bool</span>
<span class="identifier">copy</span> <span class="special">=</span>
<span class="keyword">true</span><span class="special">,</span>
<span class="identifier">boost</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></tt>
<span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span></code>
</p>
</td>
<td>
@ -673,19 +669,19 @@
If <span class="emphasis"><em>copy</em></span> is true then all unmatched sections
of input are copied unchanged to output, if the flag <span class="emphasis"><em>format_first_only</em></span>
is set then only the first occurance of the pattern found is replaced.
Returns the new string. See also <a href="../../format.html" title=" Search and Replace Format String Syntax">format
string syntax</a>, and <a href="../match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>.
Returns the new string. See also <a href="../../format.html" title="Search and Replace Format String Syntax">format
string syntax</a>, and <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="identifier">Split</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">match_flag_type</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="identifier">Split</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;&amp;</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">boost</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>
<span class="keyword">unsigned</span> <span class="identifier">max_count</span>
<span class="special">=</span> <span class="special">~</span><span class="number">0</span><span class="special">);</span></tt>
<span class="special">=</span> <span class="special">~</span><span class="number">0</span><span class="special">);</span></code>
</p>
</td>
<td>
@ -706,17 +702,17 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Position</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span>
<span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></tt>
<span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></code>
</p>
</td>
<td>
<p>
Returns the position of what matched sub-expression <span class="emphasis"><em>i</em></span>.
If <tt class="computeroutput"><span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span></tt> then returns the position
of the whole match. Returns <tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">::</span><span class="identifier">npos</span></tt>
If <code class="computeroutput"><span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span></code> then returns the position
of the whole match. Returns <code class="computeroutput"><span class="identifier">RegEx</span><span class="special">::</span><span class="identifier">npos</span></code>
if the supplied index is invalid, or if the specified sub-expression
did not participate in the match.
</p>
@ -725,16 +721,16 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Length</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span>
<span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></tt>
<span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></code>
</p>
</td>
<td>
<p>
Returns the length of what matched sub-expression i. If <tt class="computeroutput"><span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span></tt> then returns the length
of the whole match. Returns <tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">::</span><span class="identifier">npos</span></tt>
Returns the length of what matched sub-expression i. If <code class="computeroutput"><span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span></code> then returns the length
of the whole match. Returns <code class="computeroutput"><span class="identifier">RegEx</span><span class="special">::</span><span class="identifier">npos</span></code>
if the supplied index is invalid, or if the specified sub-expression
did not participate in the match.
</p>
@ -743,8 +739,8 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Matched</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></tt>
<code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">Matched</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></code>
</p>
</td>
<td>
@ -757,23 +753,23 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Line</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></tt>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Line</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span></code>
</p>
</td>
<td>
<p>
Returns the line on which the match occurred, indexes start from
1 not zero, if no match occurred then returns <tt class="computeroutput"><span class="identifier">RegEx</span><span class="special">::</span><span class="identifier">npos</span></tt>.
1 not zero, if no match occurred then returns <code class="computeroutput"><span class="identifier">RegEx</span><span class="special">::</span><span class="identifier">npos</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">Marks</span><span class="special">()</span>
<span class="keyword">const</span><span class="special">;</span></tt>
<span class="keyword">const</span><span class="special">;</span></code>
</p>
</td>
<td>
@ -787,14 +783,14 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">What</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></tt>
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">What</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span></code>
</p>
</td>
<td>
<p>
Returns a copy of what matched sub-expression <span class="emphasis"><em>i</em></span>.
If <tt class="computeroutput"><span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span></tt> then returns a copy of
If <code class="computeroutput"><span class="identifier">i</span> <span class="special">=</span>
<span class="number">0</span></code> then returns a copy of
the whole match. Returns a null string if the index is invalid
or if the specified sub-expression did not participate in a match.
</p>
@ -803,13 +799,13 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">int</span>
<span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span> <span class="special">;</span></tt>
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">int</span>
<span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span> <span class="special">;</span></code>
</p>
</td>
<td>
<p>
Returns <tt class="computeroutput"><span class="identifier">what</span><span class="special">(</span><span class="identifier">i</span><span class="special">);</span></tt>
Returns <code class="computeroutput"><span class="identifier">what</span><span class="special">(</span><span class="identifier">i</span><span class="special">);</span></code>
Can be used to simplify access to sub-expression matches, and make
usage more perl-like.
</p>
@ -820,10 +816,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,15 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
regex_format (Deprecated)</title>
<title>regex_format (Deprecated)</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../deprecated_interfaces.html" title="Deprecated Interfaces">
<link rel="prev" href="../deprecated_interfaces.html" title="Deprecated Interfaces">
<link rel="next" href="regex_grep.html" title="
regex_grep (Deprecated)">
<link rel="next" href="regex_grep.html" title="regex_grep (Deprecated)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -26,31 +24,29 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.regex_format"></a><a href="regex_format.html" title="
regex_format (Deprecated)">
regex_format (Deprecated)</a></h4></div></div></div>
<a name="boost_regex.ref.deprecated_interfaces.regex_format"></a><a href="regex_format.html" title="regex_format (Deprecated)">
regex_format (Deprecated)</a>
</h4></div></div></div>
<p>
The algorithm <tt class="computeroutput"><span class="identifier">regex_format</span></tt>
is deprecated; new code should use <a href="../match_results.html#boost_regex.match_results_format"><tt class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;&gt;::</span><span class="identifier">format</span></tt></a> instead. Existing code
The algorithm <code class="computeroutput"><span class="identifier">regex_format</span></code>
is deprecated; new code should use <a href="../match_results.html#boost_regex.match_results_format"><code class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;&gt;::</span><span class="identifier">format</span></code></a> instead. Existing code
will continue to compile, the following documentation is taken from the
previous version of Boost.Regex and will not be further updated:
</p>
<a name="boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format"></a><h4>
<a name="id591505"></a>
<a name="boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format"></a><h5>
<a name="id624370"></a>
<a href="regex_format.html#boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format">Algorithm
regex_format</a>
</h4>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</pre>
<p>
The algorithm <tt class="computeroutput"><span class="identifier">regex_format</span></tt>
The algorithm <code class="computeroutput"><span class="identifier">regex_format</span></code>
takes the results of a match and creates a new string based upon a format
string, <tt class="computeroutput"><span class="identifier">regex_format</span></tt> can
string, <code class="computeroutput"><span class="identifier">regex_format</span></code> can
be used for search and replace operations:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">regex_format</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">fmt</span><span class="special">,</span>
@ -62,7 +58,7 @@
<span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
</pre>
<p>
The library also defines the following convenience variation of <tt class="computeroutput"><span class="identifier">regex_format</span></tt>, which returns the result
The library also defines the following convenience variation of <code class="computeroutput"><span class="identifier">regex_format</span></code>, which returns the result
directly as a string, rather than outputting to an iterator.
</p>
<div class="note"><table border="0" summary="Note">
@ -70,13 +66,12 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td colspan="2" align="left" valign="top"><p>
<tr><td align="left" valign="top"><p>
This version may not be available, or may be available in a more limited
form, depending upon your compilers capabilities
</p></td></tr>
</table></div>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">regex_format</span>
<span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">fmt</span><span class="special">,</span>
@ -112,7 +107,7 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">OutputIterator</span> <span class="identifier">out</span></tt>
<code class="computeroutput"><span class="identifier">OutputIterator</span> <span class="identifier">out</span></code>
</p>
</td>
<td>
@ -125,12 +120,12 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span></tt>
<code class="computeroutput"><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span></code>
</p>
</td>
<td>
<p>
An instance of <a href="../match_results.html" title=" match_results"><tt class="computeroutput"><span class="identifier">match_results</span></tt></a> obtained
An instance of <a href="../match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> obtained
from one of the matching algorithms above, and denoting what matched.
</p>
</td>
@ -138,7 +133,7 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">fmt</span></tt>
<code class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">fmt</span></code>
</p>
</td>
<td>
@ -151,7 +146,7 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="identifier">flags</span></tt>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="identifier">flags</span></code>
</p>
</td>
<td>
@ -163,19 +158,20 @@
</tbody>
</table></div>
<p>
Format flags are described under <a href="../match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>.
Format flags are described under <a href="../match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>.
</p>
<p>
The format string syntax (and available options) is described more fully
under <a href="../../format.html" title=" Search and Replace Format String Syntax">format strings</a>.
under <a href="../../format.html" title="Search and Replace Format String Syntax">format strings</a>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,16 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
regex_grep (Deprecated)</title>
<title>regex_grep (Deprecated)</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../deprecated_interfaces.html" title="Deprecated Interfaces">
<link rel="prev" href="regex_format.html" title="
regex_format (Deprecated)">
<link rel="next" href="regex_split.html" title="
regex_split (deprecated)">
<link rel="prev" href="regex_format.html" title="regex_format (Deprecated)">
<link rel="next" href="regex_split.html" title="regex_split (deprecated)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -27,28 +24,26 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.regex_grep"></a><a href="regex_grep.html" title="
regex_grep (Deprecated)">
regex_grep (Deprecated)</a></h4></div></div></div>
<a name="boost_regex.ref.deprecated_interfaces.regex_grep"></a><a href="regex_grep.html" title="regex_grep (Deprecated)">
regex_grep (Deprecated)</a>
</h4></div></div></div>
<p>
The algorithm <tt class="computeroutput"><span class="identifier">regex_grep</span></tt>
is deprecated in favor of <a href="../regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a> which provides
The algorithm <code class="computeroutput"><span class="identifier">regex_grep</span></code>
is deprecated in favor of <a href="../regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> which provides
a more convenient and standard library friendly interface.
</p>
<p>
The following documentation is taken unchanged from the previous boost
release, and will not be updated in future.
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</pre>
<p>
<tt class="computeroutput"><span class="identifier">regex_grep</span></tt> allows you to
<code class="computeroutput"><span class="identifier">regex_grep</span></code> allows you to
search through a bidirectional-iterator range and locate all the (non-overlapping)
matches with a given regular expression. The function is declared as:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Predicate</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Predicate</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">regex_grep</span><span class="special">(</span><span class="identifier">Predicate</span> <span class="identifier">foo</span><span class="special">,</span>
<span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span>
<span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">,</span>
@ -57,12 +52,11 @@
</pre>
<p>
The library also defines the following convenience versions, which take
either a <tt class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span></tt>, or a <tt class="computeroutput"><span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;&gt;&amp;</span></tt>
either a <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span></code>, or a <code class="computeroutput"><span class="keyword">const</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;&gt;&amp;</span></code>
in place of a pair of iterators.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Predicate</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Predicate</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">&gt;</span>
<span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">regex_grep</span><span class="special">(</span><span class="identifier">Predicate</span> <span class="identifier">foo</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
@ -75,7 +69,7 @@
<span class="identifier">boost</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>
The parameters for the primary version of <tt class="computeroutput"><span class="identifier">regex_grep</span></tt>
The parameters for the primary version of <code class="computeroutput"><span class="identifier">regex_grep</span></code>
have the following meanings:
</p>
<p>
@ -97,9 +91,9 @@
</p>
<p>
The algorithm finds all of the non-overlapping matches of the expression
<span class="emphasis"><em>e</em></span>, for each match it fills a <tt class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></tt> structure, which contains information
<span class="emphasis"><em>e</em></span>, for each match it fills a <code class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></code> structure, which contains information
on what matched, and calls the predicate <span class="emphasis"><em>foo</em></span>, passing
the <tt class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></tt>
the <code class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></code>
as a single argument. If the predicate returns <span class="emphasis"><em>true</em></span>,
then the grep operation continues, otherwise it terminates without searching
for further matches. The function returns the number of matches found.
@ -107,8 +101,7 @@
<p>
The general form of the predicate is:
</p>
<pre class="programlisting">
<span class="keyword">struct</span> <span class="identifier">grep_predicate</span>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">grep_predicate</span>
<span class="special">{</span>
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">iterator_type</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span>
<span class="special">};</span>
@ -123,12 +116,12 @@
utilities would output the results to the screen, another program could
index a file based on a regular expression and store a set of bookmarks
in a list, or a text file conversion utility would output to file. The
results of one <tt class="computeroutput"><span class="identifier">regex_grep</span></tt>
can even be chained into another <tt class="computeroutput"><span class="identifier">regex_grep</span></tt>
results of one <code class="computeroutput"><span class="identifier">regex_grep</span></code>
can even be chained into another <code class="computeroutput"><span class="identifier">regex_grep</span></code>
to create recursive parsers.
</p>
<p>
The algorithm may throw <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></tt>
The algorithm may throw <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span></code>
if the complexity of matching the expression against an <span class="emphasis"><em>N</em></span>
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
@ -136,10 +129,9 @@
(if Boost.Regex is configured in non-recursive mode).
</p>
<p>
Example: convert the example from <a href="../regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a> to use <tt class="computeroutput"><span class="identifier">regex_grep</span></tt> instead:
Example: convert the example from <a href="../regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a> to use <code class="computeroutput"><span class="identifier">regex_grep</span></code> instead:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
@ -198,11 +190,10 @@
<span class="special">}</span>
</pre>
<p>
Example: Use <tt class="computeroutput"><span class="identifier">regex_grep</span></tt>
Example: Use <code class="computeroutput"><span class="identifier">regex_grep</span></code>
to call a global callback function:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
@ -258,12 +249,11 @@
<span class="special">}</span>
</pre>
<p>
Example: use <tt class="computeroutput"><span class="identifier">regex_grep</span></tt>
to call a class member function, use the standard library adapters <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">mem_fun</span></tt> and <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind1st</span></tt>
Example: use <code class="computeroutput"><span class="identifier">regex_grep</span></code>
to call a class member function, use the standard library adapters <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">mem_fun</span></code> and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind1st</span></code>
to convert the member function into a predicate:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span>
@ -316,8 +306,7 @@
Finally, C++ Builder users can use C++ Builder's closure type as a callback
argument:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span>
@ -373,10 +362,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,16 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
regex_split (deprecated)</title>
<title>regex_split (deprecated)</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../deprecated_interfaces.html" title="Deprecated Interfaces">
<link rel="prev" href="regex_grep.html" title="
regex_grep (Deprecated)">
<link rel="next" href="old_regex.html" title=" High
Level Class RegEx (Deprecated)">
<link rel="prev" href="regex_grep.html" title="regex_grep (Deprecated)">
<link rel="next" href="old_regex.html" title="High Level Class RegEx (Deprecated)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -27,31 +24,26 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.deprecated_interfaces.regex_split"></a><a href="regex_split.html" title="
regex_split (deprecated)">
regex_split (deprecated)</a></h4></div></div></div>
<a name="boost_regex.ref.deprecated_interfaces.regex_split"></a><a href="regex_split.html" title="regex_split (deprecated)">
regex_split (deprecated)</a>
</h4></div></div></div>
<p>
The algorithm <a href="regex_split.html" title="
regex_split (deprecated)"><tt class="computeroutput"><span class="identifier">regex_split</span></tt></a> has been deprecated
in favor of the iterator <a href="../regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> which has
The algorithm <a href="regex_split.html" title="regex_split (deprecated)"><code class="computeroutput"><span class="identifier">regex_split</span></code></a> has been deprecated
in favor of the iterator <a href="../regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> which has
a more flexible and powerful interface, as well as following the more usual
standard library "pull" rather than "push" semantics.
</p>
<p>
Code which uses <a href="regex_split.html" title="
regex_split (deprecated)"><tt class="computeroutput"><span class="identifier">regex_split</span></tt></a> will continue to compile,
Code which uses <a href="regex_split.html" title="regex_split (deprecated)"><code class="computeroutput"><span class="identifier">regex_split</span></code></a> will continue to compile,
the following documentation is taken from a previous Boost.Regex version:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</pre>
<p>
Algorithm <a href="regex_split.html" title="
regex_split (deprecated)"><tt class="computeroutput"><span class="identifier">regex_split</span></tt></a> performs a similar
Algorithm <a href="regex_split.html" title="regex_split (deprecated)"><code class="computeroutput"><span class="identifier">regex_split</span></code></a> performs a similar
operation to the perl split operation, and comes in three overloaded forms:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">Traits1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Alloc1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits2</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">Traits1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Alloc1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits2</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">regex_split</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits1</span><span class="special">,</span> <span class="identifier">Alloc1</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits2</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
@ -69,7 +61,7 @@
<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits1</span><span class="special">,</span> <span class="identifier">Alloc1</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Each version of the algorithm
<span class="bold"><strong>Effects</strong></span>: Each version of the algorithm
takes an output-iterator for output, and a string for input. If the expression
contains no marked sub-expressions, then the algorithm writes one string
onto the output-iterator for each section of input that does not match
@ -80,11 +72,11 @@
processed will be deleted from the string <span class="emphasis"><em>s</em></span> (if <span class="emphasis"><em>max_split</em></span>
is not reached then all of <span class="emphasis"><em>s</em></span> will be deleted). Returns
the number of strings written to the output-iterator. If the parameter
<span class="emphasis"><em>max_split</em></span> is not specified then it defaults to <tt class="computeroutput"><span class="identifier">UINT_MAX</span></tt>. If no expression is specified,
<span class="emphasis"><em>max_split</em></span> is not specified then it defaults to <code class="computeroutput"><span class="identifier">UINT_MAX</span></code>. If no expression is specified,
then it defaults to "\s+", and splitting occurs on whitespace.
</p>
<p>
<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>
<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>
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),
@ -92,12 +84,11 @@
is configured in non-recursive mode).
</p>
<p>
<span class="bold"><b>Example</b></span>: the following function will split
<span class="bold"><strong>Example</strong></span>: the following function will split
the input string into a series of tokens, and remove each token from the
string <span class="emphasis"><em>s</em></span>:
</p>
<pre class="programlisting">
<span class="keyword">unsigned</span> <span class="identifier">tokenise</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;&amp;</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">)</span>
<pre class="programlisting"><span class="keyword">unsigned</span> <span class="identifier">tokenise</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;&amp;</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">)</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_split</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">l</span><span class="special">),</span> <span class="identifier">s</span><span class="special">);</span>
<span class="special">}</span>
@ -106,8 +97,7 @@
Example: the following short program will extract all of the URL's from
a html file, and print them out to cout:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">list</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">list</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
@ -159,10 +149,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> error_type</title>
<title>error_type</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="match_flag_type.html" title=" match_flag_type">
<link rel="next" href="regex_traits.html" title=" regex_traits">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="match_flag_type.html" title="match_flag_type">
<link rel="next" href="regex_traits.html" title="regex_traits">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,17 +24,17 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.error_type"></a><a href="error_type.html" title=" error_type"> error_type</a></h3></div></div></div>
<a name="boost_regex.ref.error_type.synopsis"></a><h4>
<a name="id569168"></a>
<a name="boost_regex.ref.error_type"></a><a href="error_type.html" title="error_type"> error_type</a>
</h3></div></div></div>
<a name="boost_regex.ref.error_type.synopsis"></a><h5>
<a name="id602223"></a>
<a href="error_type.html#boost_regex.ref.error_type.synopsis">Synopsis</a>
</h4>
</h5>
<p>
Type error type represents the different types of errors that can be raised
by the library when parsing a regular expression.
</p>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">regex_constants</span><span class="special">{</span>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">regex_constants</span><span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">implementation</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">type</span> <span class="identifier">error_type</span><span class="special">;</span>
@ -56,12 +56,12 @@
<span class="special">}</span> <span class="comment">// namespace regex_constants
</span><span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.error_type.description"></a><h4>
<a name="id569735"></a>
<a name="boost_regex.ref.error_type.description"></a><h5>
<a name="id602787"></a>
<a href="error_type.html#boost_regex.ref.error_type.description">Description</a>
</h4>
</h5>
<p>
The type <tt class="computeroutput"><span class="identifier">error_type</span></tt> is an
The type <code class="computeroutput"><span class="identifier">error_type</span></code> is an
implementation-specific enumeration type that may take one of the following
values:
</p>
@ -257,10 +257,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,14 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> match_flag_type</title>
<title>match_flag_type</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="syntax_option_type/syntax_option_type_literal.html" title="
Options for Literal Strings">
<link rel="next" href="error_type.html" title=" error_type">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="syntax_option_type/syntax_option_type_literal.html" title="Options for Literal Strings">
<link rel="next" href="error_type.html" title="error_type">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -25,15 +24,15 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.match_flag_type"></a><a href="match_flag_type.html" title=" match_flag_type"> match_flag_type</a></h3></div></div></div>
<a name="boost_regex.ref.match_flag_type"></a><a href="match_flag_type.html" title="match_flag_type"> match_flag_type</a>
</h3></div></div></div>
<p>
The type <tt class="computeroutput"><span class="identifier">match_flag_type</span></tt>
The type <code class="computeroutput"><span class="identifier">match_flag_type</span></code>
is an implementation specific bitmask type (see C++ std 17.3.2.1.2) that
controls how a regular expression is matched against a character sequence.
The behavior of the format flags is described in more detail in the <a href="../format.html" title=" Search and Replace Format String Syntax">format syntax guide</a>.
The behavior of the format flags is described in more detail in the <a href="../format.html" title="Search and Replace Format String Syntax">format syntax guide</a>.
</p>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">regex_constants</span><span class="special">{</span>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">regex_constants</span><span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">implemenation</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">bitmask</span><span class="special">-</span><span class="identifier">type</span> <span class="identifier">match_flag_type</span><span class="special">;</span>
@ -69,12 +68,12 @@
<span class="special">}</span> <span class="comment">// namespace regex_constants
</span><span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.match_flag_type.description"></a><h4>
<a name="id568392"></a>
<a name="boost_regex.ref.match_flag_type.description"></a><h5>
<a name="id601462"></a>
<a href="match_flag_type.html#boost_regex.ref.match_flag_type.description">Description</a>
</h4>
</h5>
<p>
The type <tt class="computeroutput"><span class="identifier">match_flag_type</span></tt>
The type <code class="computeroutput"><span class="identifier">match_flag_type</span></code>
is an implementation specific bitmask type (see C++ std 17.3.2.1.2). When
matching a regular expression against a sequence of characters [first, last)
then setting its elements has the effects listed in the table below:
@ -328,8 +327,7 @@
<td>
<p>
Specifies that the expression should be matched according to the
POSIX <a href="../syntax/leftmost_longest_rule.html" title=" The Leftmost
Longest Rule">leftmost-longest
POSIX <a href="../syntax/leftmost_longest_rule.html" title="The Leftmost Longest Rule">leftmost-longest
rule</a>, regardless of what kind of expression was compiled.
Be warned that these rules do not work well with many Perl-specific
features such as non-greedy repeats.
@ -360,7 +358,7 @@
<td>
<p>
Makes the expression behave as if it had no marked subexpressions,
no matter how many capturing groups are actually present. The <a href="match_results.html" title=" match_results"><tt class="computeroutput"><span class="identifier">match_results</span></tt></a>
no matter how many capturing groups are actually present. The <a href="match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a>
class will only contain information about the overall match, and
not any sub-expressions.
</p>
@ -380,7 +378,7 @@
Specification, Chapter 15 part 5.4.11 String.prototype.replace. (FWD.1).
</p>
<p>
This is functionally identical to the <a href="../format/perl_format.html" title=" Perl Format String Syntax">Perl
This is functionally identical to the <a href="../format/perl_format.html" title="Perl Format String Syntax">Perl
format string rules</a>.
</p>
<p>
@ -402,7 +400,7 @@
Specifies that when a regular expression match is to be replaced
by a new string, that the new string is constructed using the rules
used by the Unix sed utility in IEEE Std 1003.1-2001, Portable Operating
SystemInterface (POSIX ), Shells and Utilities. See also the <a href="../format/sed_format.html" title=" Sed Format String Syntax">Sed Format string reference</a>.
SystemInterface (POSIX ), Shells and Utilities. See also the <a href="../format/sed_format.html" title="Sed Format String Syntax">Sed Format string reference</a>.
</p>
</td>
</tr>
@ -415,7 +413,7 @@
<td>
<p>
Specifies that when a regular expression match is to be replaced
by a new string, that the new string is constructed using <a href="../format/perl_format.html" title=" Perl Format String Syntax">the
by a new string, that the new string is constructed using <a href="../format/perl_format.html" title="Perl Format String Syntax">the
same rules as Perl 5</a>.
</p>
</td>
@ -443,8 +441,7 @@
<td>
<p>
Specifies that all syntax extensions are enabled, including conditional
(?ddexpression1:expression2) replacements: see the <a href="../format/boost_format_syntax.html" title=" Boost-Extended
Format String Syntax">format
(?ddexpression1:expression2) replacements: see the <a href="../format/boost_format_syntax.html" title="Boost-Extended Format String Syntax">format
string guide</a> for more details.
</p>
</td>
@ -481,10 +478,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> match_results</title>
<title>match_results</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="basic_regex.html" title=" basic_regex">
<link rel="next" href="sub_match.html" title=" sub_match">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="basic_regex.html" title="basic_regex">
<link rel="next" href="sub_match.html" title="sub_match">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,45 +24,44 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.match_results"></a><a href="match_results.html" title=" match_results"> match_results</a></h3></div></div></div>
<a name="boost_regex.ref.match_results.synopsis"></a><h4>
<a name="id498310"></a>
<a name="boost_regex.ref.match_results"></a><a href="match_results.html" title="match_results"> match_results</a>
</h3></div></div></div>
<a name="boost_regex.ref.match_results.synopsis"></a><h5>
<a name="id531798"></a>
<a href="match_results.html#boost_regex.ref.match_results.synopsis">Synopsis</a>
</h4>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</pre>
<p>
Regular expressions are different from many simple pattern-matching algorithms
in that as well as finding an overall match they can also produce sub-expression
matches: each sub-expression being delimited in the pattern by a pair of
parenthesis (...). There has to be some method for reporting sub-expression
matches back to the user: this is achieved this by defining a class <tt class="computeroutput"><span class="identifier">match_results</span></tt> that acts as an indexed collection
matches back to the user: this is achieved this by defining a class <code class="computeroutput"><span class="identifier">match_results</span></code> that acts as an indexed collection
of sub-expression matches, each sub-expression match being contained in an
object of type <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a>.
object of type <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>.
</p>
<p>
Template class <tt class="computeroutput"><span class="identifier">match_results</span></tt>
Template class <code class="computeroutput"><span class="identifier">match_results</span></code>
denotes a collection of character sequences representing the result of a
regular expression match. Objects of type <tt class="computeroutput"><span class="identifier">match_results</span></tt>
are passed to the algorithms <a href="regex_match.html" title=" regex_match"><tt class="computeroutput"><span class="identifier">regex_match</span></tt></a> and <a href="regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a>, and are returned by
the iterator <a href="regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a>. Storage for the
regular expression match. Objects of type <code class="computeroutput"><span class="identifier">match_results</span></code>
are passed to the algorithms <a href="regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a> and <a href="regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>, and are returned by
the iterator <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>. Storage for the
collection is allocated and freed as necessary by the member functions of
class <tt class="computeroutput"><span class="identifier">match_results</span></tt>.
class <code class="computeroutput"><span class="identifier">match_results</span></code>.
</p>
<p>
The template class <tt class="computeroutput"><span class="identifier">match_results</span></tt>
The template class <code class="computeroutput"><span class="identifier">match_results</span></code>
conforms to the requirements of a Sequence, as specified in (lib.sequence.reqmts),
except that only operations defined for const-qualified Sequences are supported.
</p>
<p>
Class template <tt class="computeroutput"><span class="identifier">match_results</span></tt>
is most commonly used as one of the typedefs <tt class="computeroutput"><span class="identifier">cmatch</span></tt>,
<tt class="computeroutput"><span class="identifier">wcmatch</span></tt>, <tt class="computeroutput"><span class="identifier">smatch</span></tt>,
or <tt class="computeroutput"><span class="identifier">wsmatch</span></tt>:
Class template <code class="computeroutput"><span class="identifier">match_results</span></code>
is most commonly used as one of the typedefs <code class="computeroutput"><span class="identifier">cmatch</span></code>,
<code class="computeroutput"><span class="identifier">wcmatch</span></code>, <code class="computeroutput"><span class="identifier">smatch</span></code>,
or <code class="computeroutput"><span class="identifier">wsmatch</span></code>:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">match_results</span><span class="special">;</span>
@ -142,23 +141,22 @@
<span class="keyword">void</span> <a href="match_results.html#boost_regex.match_results.op_swap">swap</a><span class="special">(</span><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span>
<span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
</pre>
<a name="boost_regex.ref.match_results.description"></a><h4>
<a name="id501232"></a>
<a name="boost_regex.ref.match_results.description"></a><h5>
<a name="id534701"></a>
<a href="match_results.html#boost_regex.ref.match_results.description">Description</a>
</h4>
</h5>
<p>
In all <tt class="computeroutput"><span class="identifier">match_results</span></tt> constructors,
In all <code class="computeroutput"><span class="identifier">match_results</span></code> constructors,
a copy of the Allocator argument is used for any memory allocation performed
by the constructor or member functions during the lifetime of the object.
</p>
<a name="boost_regex.match_results.construct"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">match_results</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Allocator</span><span class="special">&amp;</span> <span class="identifier">a</span> <span class="special">=</span> <span class="identifier">Allocator</span><span class="special">());</span>
<pre class="programlisting"><span class="identifier">match_results</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Allocator</span><span class="special">&amp;</span> <span class="identifier">a</span> <span class="special">=</span> <span class="identifier">Allocator</span><span class="special">());</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Constructs an object of class
<tt class="computeroutput"><span class="identifier">match_results</span></tt>. The postconditions
<span class="bold"><strong>Effects</strong></span>: Constructs an object of class
<code class="computeroutput"><span class="identifier">match_results</span></code>. The postconditions
of this function are indicated in the table:
</p>
<div class="informaltable"><table class="table">
@ -219,20 +217,18 @@
</table></div>
<a name="boost_regex.match_results.copy_construct"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">match_results</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">match_results</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Constructs an object of class match_results,
<span class="bold"><strong>Effects</strong></span>: Constructs an object of class match_results,
as a copy of m.
</p>
<a name="boost_regex.match_results.assign"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">match_results</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">match_results</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Assigns m to *this. The postconditions
<span class="bold"><strong>Effects</strong></span>: Assigns m to *this. The postconditions
of this function are indicated in the table:
</p>
<div class="informaltable"><table class="table">
@ -353,218 +349,201 @@
</table></div>
<a name="boost_regex.match_results.size"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns the number of <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a> elements stored in *this;
<span class="bold"><strong>Effects</strong></span>: Returns the number of <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> elements stored in *this;
that is the number of marked sub-expressions in the regular expression that
was matched plus one.
</p>
<a name="boost_regex.match_results.max_size"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">size_type</span> <span class="identifier">max_size</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">size_type</span> <span class="identifier">max_size</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns the maximum number of
<a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a>
<span class="bold"><strong>Effects</strong></span>: Returns the maximum number of
<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
elements that can be stored in *this.
</p>
<a name="boost_regex.match_results.empty"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns size() == 0.
<span class="bold"><strong>Effects</strong></span>: Returns size() == 0.
</p>
<a name="boost_regex.match_results.length"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns the length of sub-expression
<span class="emphasis"><em>sub</em></span>, that is to say: <tt class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">].</span><span class="identifier">length</span><span class="special">()</span></tt>.
<span class="bold"><strong>Effects</strong></span>: Returns the length of sub-expression
<span class="emphasis"><em>sub</em></span>, that is to say: <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">].</span><span class="identifier">length</span><span class="special">()</span></code>.
</p>
<a name="boost_regex.match_results.position"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns the starting location of
<span class="bold"><strong>Effects</strong></span>: Returns the starting location of
sub-expression <span class="emphasis"><em>sub</em></span>, or -1 if <span class="emphasis"><em>sub</em></span>
was not matched. Note that if this represents a partial match , then <tt class="computeroutput"><span class="identifier">position</span><span class="special">()</span></tt>
will return the location of the partial match even though <tt class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">].</span><span class="identifier">matched</span></tt>
was not matched. Note that if this represents a partial match , then <code class="computeroutput"><span class="identifier">position</span><span class="special">()</span></code>
will return the location of the partial match even though <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">].</span><span class="identifier">matched</span></code>
is false.
</p>
<a name="boost_regex.match_results.str"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns sub-expression <span class="emphasis"><em>sub</em></span>
as a string: <tt class="computeroutput"><span class="identifier">string_type</span><span class="special">((*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">])</span></tt>.
<span class="bold"><strong>Effects</strong></span>: Returns sub-expression <span class="emphasis"><em>sub</em></span>
as a string: <code class="computeroutput"><span class="identifier">string_type</span><span class="special">((*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">])</span></code>.
</p>
<a name="boost_regex.match_results.subscript"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns a reference to the <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a>
<span class="bold"><strong>Effects</strong></span>: Returns a reference to the <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
object representing the character sequence that matched marked sub-expression
<span class="emphasis"><em>n</em></span>. If <tt class="computeroutput"><span class="identifier">n</span> <span class="special">==</span> <span class="number">0</span></tt> then returns
a reference to a <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a> object representing the
<span class="emphasis"><em>n</em></span>. If <code class="computeroutput"><span class="identifier">n</span> <span class="special">==</span> <span class="number">0</span></code> then returns
a reference to a <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object representing the
character sequence that matched the whole regular expression. If <span class="emphasis"><em>n</em></span>
is out of range, or if <span class="emphasis"><em>n</em></span> is an unmatched sub-expression,
then returns a <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a>
then returns a <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
object whose matched member is false.
</p>
<a name="boost_regex.match_results.prefix"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">const_reference</span> <span class="identifier">prefix</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">const_reference</span> <span class="identifier">prefix</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns a reference to the <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a>
<span class="bold"><strong>Effects</strong></span>: Returns a reference to the <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
object representing the character sequence from the start of the string being
matched or searched, to the start of the match found.
</p>
<a name="boost_regex.match_results.suffix"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">const_reference</span> <span class="identifier">suffix</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">const_reference</span> <span class="identifier">suffix</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns a reference to the <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a>
<span class="bold"><strong>Effects</strong></span>: Returns a reference to the <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
object representing the character sequence from the end of the match found
to the end of the string being matched or searched.
</p>
<a name="boost_regex.match_results.begin"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns a starting iterator that
<span class="bold"><strong>Effects</strong></span>: Returns a starting iterator that
enumerates over all the marked sub-expression matches stored in *this.
</p>
<a name="boost_regex.match_results.end"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns a terminating iterator
<span class="bold"><strong>Effects</strong></span>: Returns a terminating iterator
that enumerates over all the marked sub-expression matches stored in *this.
</p>
<a name="boost_regex.match_results_format"></a><a name="boost_regex.match_results.format"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">format</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Requires</b></span>: The type <tt class="computeroutput"><span class="identifier">OutputIterator</span></tt>
<span class="bold"><strong>Requires</strong></span>: The type <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
conforms to the Output Iterator requirements (C++ std 24.1.2).
</p>
<p>
<span class="bold"><b>Effects</b></span>: Copies the character sequence
<tt class="computeroutput"><span class="special">[</span><span class="identifier">fmt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">fmt</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span></tt>
to <tt class="computeroutput"><span class="identifier">OutputIterator</span></tt> <span class="emphasis"><em>out</em></span>.
<span class="bold"><strong>Effects</strong></span>: Copies the character sequence
<code class="computeroutput"><span class="special">[</span><span class="identifier">fmt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">fmt</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span></code>
to <code class="computeroutput"><span class="identifier">OutputIterator</span></code> <span class="emphasis"><em>out</em></span>.
For each format specifier or escape sequence in <span class="emphasis"><em>fmt</em></span>,
replace that sequence with either the character(s) it represents, or the
sequence of characters within <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt> to which it refers. The bitmasks specified
sequence of characters within <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> to which it refers. The bitmasks specified
in flags determines what format specifiers or escape sequences are recognized,
by default this is the format used by ECMA-262, ECMAScript Language Specification,
Chapter 15 part 5.4.11 String.prototype.replace.
</p>
<p>
See the <a href="../format.html" title=" Search and Replace Format String Syntax">format syntax guide for more information</a>.
See the <a href="../format.html" title="Search and Replace Format String Syntax">format syntax guide for more information</a>.
</p>
<p>
<span class="bold"><b>Returns</b></span>: out.
<span class="bold"><strong>Returns</strong></span>: out.
</p>
<a name="boost_regex.match_results.format2"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">string_type</span> <span class="identifier">format</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">format</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns a copy of the string <span class="emphasis"><em>fmt</em></span>.
<span class="bold"><strong>Effects</strong></span>: Returns a copy of the string <span class="emphasis"><em>fmt</em></span>.
For each format specifier or escape sequence in <span class="emphasis"><em>fmt</em></span>,
replace that sequence with either the character(s) it represents, or the
sequence of characters within <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt> to which it refers. The bitmasks specified
sequence of characters within <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> to which it refers. The bitmasks specified
in flags determines what format specifiers or escape sequences are recognized,
by default this is the format used by ECMA-262, ECMAScript Language Specification,
Chapter 15 part 5.4.11 String.prototype.replace.
</p>
<p>
See the <a href="../format.html" title=" Search and Replace Format String Syntax">format syntax guide for more information</a>.
See the <a href="../format.html" title="Search and Replace Format String Syntax">format syntax guide for more information</a>.
</p>
<a name="boost_regex.match_results.get_allocator"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">allocator_type</span> <span class="identifier">get_allocator</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="identifier">allocator_type</span> <span class="identifier">get_allocator</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Returns a copy of the Allocator
<span class="bold"><strong>Effects</strong></span>: Returns a copy of the Allocator
that was passed to the object's constructor.
</p>
<a name="boost_regex.match_results.swap"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Swaps the contents of the two sequences.
<span class="bold"><strong>Effects</strong></span>: Swaps the contents of the two sequences.
</p>
<p>
<span class="bold"><b>Postcondition</b></span>: *this contains the sequence
<span class="bold"><strong>Postcondition</strong></span>: *this contains the sequence
of matched sub-expressions that were in that, that contains the sequence
of matched sub-expressions that were in *this.
</p>
<p>
<span class="bold"><b>Complexity</b></span>: constant time.
<span class="bold"><strong>Complexity</strong></span>: constant time.
</p>
<a name="boost_regex.match_results.capture_type"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">value_type</span><span class="special">::</span><span class="identifier">capture_sequence_type</span> <span class="identifier">capture_sequence_type</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">value_type</span><span class="special">::</span><span class="identifier">capture_sequence_type</span> <span class="identifier">capture_sequence_type</span><span class="special">;</span>
</pre>
<p>
Defines an implementation-specific type that satisfies the requirements of
a standard library Sequence (21.1.1 including the optional Table 68 operations),
whose value_type is a <tt class="computeroutput"><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span></tt>. This type happens to be <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span></tt>,
whose value_type is a <code class="computeroutput"><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span></code>. This type happens to be <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>,
but you shouldn't actually rely on that.
</p>
<a name="boost_regex.match_results.captures"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">const</span> <span class="identifier">capture_sequence_type</span><span class="special">&amp;</span> <span class="identifier">captures</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">capture_sequence_type</span><span class="special">&amp;</span> <span class="identifier">captures</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: returns a sequence containing all
<span class="bold"><strong>Effects</strong></span>: returns a sequence containing all
the captures obtained for sub-expression i.
</p>
<p>
<span class="bold"><b>Returns</b></span>: <tt class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">i</span><span class="special">].</span><span class="identifier">captures</span><span class="special">();</span></tt>
<span class="bold"><strong>Returns</strong></span>: <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">i</span><span class="special">].</span><span class="identifier">captures</span><span class="special">();</span></code>
</p>
<p>
<span class="bold"><b>Preconditions</b></span>: the library must be built
<span class="bold"><strong>Preconditions</strong></span>: the library must be built
and used with BOOST_REGEX_MATCH_EXTRA defined, and you must pass the flag
match_extra to the regex matching functions ( <a href="regex_match.html" title=" regex_match"><tt class="computeroutput"><span class="identifier">regex_match</span></tt></a>, <a href="regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a>, <a href="regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a> or <a href="regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a>) in order for
match_extra to the regex matching functions ( <a href="regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a>, <a href="regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>, <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> or <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a>) in order for
this member function to be defined and return useful information.
</p>
<p>
<span class="bold"><b>Rationale</b></span>: Enabling this feature has several
<span class="bold"><strong>Rationale</strong></span>: Enabling this feature has several
consequences:
</p>
<div class="itemizedlist"><ul type="disc">
@ -584,57 +563,54 @@
</ul></div>
<a name="boost_regex.match_results.op_eq"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Compares the two sequences for
<span class="bold"><strong>Effects</strong></span>: Compares the two sequences for
equality.
</p>
<a name="boost_regex.match_results.op_ne"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Compares the two sequences for
<span class="bold"><strong>Effects</strong></span>: Compares the two sequences for
inequality.
</p>
<a name="boost_regex.match_results.op_stream"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span>
<span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span>
<span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Writes the contents of <span class="emphasis"><em>m</em></span>
to the stream <span class="emphasis"><em>os</em></span> as if by calling <tt class="computeroutput"><span class="identifier">os</span>
<span class="special">&lt;&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span></tt>;
<span class="bold"><strong>Effects</strong></span>: Writes the contents of <span class="emphasis"><em>m</em></span>
to the stream <span class="emphasis"><em>os</em></span> as if by calling <code class="computeroutput"><span class="identifier">os</span>
<span class="special">&lt;&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span></code>;
Returns <span class="emphasis"><em>os</em></span>.
</p>
<a name="boost_regex.match_results.op_swap"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span>
<span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Swaps the contents of the two sequences.
<span class="bold"><strong>Effects</strong></span>: Swaps the contents of the two sequences.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,15 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Interfacing With Non-Standard
String Types</title>
<title>Interfacing With Non-Standard String Types</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="regex_traits.html" title=" regex_traits">
<link rel="next" href="non_std_strings/icu.html" title=" Working With
Unicode and ICU String Types">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="regex_traits.html" title="regex_traits">
<link rel="next" href="non_std_strings/icu.html" title="Working With Unicode and ICU String Types">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -26,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.non_std_strings"></a><a href="non_std_strings.html" title=" Interfacing With Non-Standard
String Types"> Interfacing With Non-Standard
String Types</a></h3></div></div></div>
<a name="boost_regex.ref.non_std_strings"></a><a href="non_std_strings.html" title="Interfacing With Non-Standard String Types"> Interfacing With Non-Standard
String Types</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="non_std_strings/icu.html"> Working With
Unicode and ICU String Types</a></span></dt>
@ -72,15 +70,14 @@
been provided for them already: currently this includes the ICU and MFC string
class types.
</p>
<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Working With
Unicode and ICU String Types</title>
<title>Working With Unicode and ICU String Types</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../non_std_strings.html" title=" Interfacing With Non-Standard
String Types">
<link rel="prev" href="../non_std_strings.html" title=" Interfacing With Non-Standard
String Types">
<link rel="next" href="icu/intro.html" title=" Introduction
to using Regex with ICU">
<link rel="up" href="../non_std_strings.html" title="Interfacing With Non-Standard String Types">
<link rel="prev" href="../non_std_strings.html" title="Interfacing With Non-Standard String Types">
<link rel="next" href="icu/intro.html" title="Introduction to using Regex with ICU">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.non_std_strings.icu"></a><a href="icu.html" title=" Working With
Unicode and ICU String Types"> Working With
Unicode and ICU String Types</a></h4></div></div></div>
<a name="boost_regex.ref.non_std_strings.icu"></a><a href="icu.html" title="Working With Unicode and ICU String Types"> Working With
Unicode and ICU String Types</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="icu/intro.html"> Introduction
to using Regex with ICU</a></span></dt>
@ -44,10 +40,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Introduction
to using Regex with ICU</title>
<title>Introduction to using Regex with ICU</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../icu.html" title=" Working With
Unicode and ICU String Types">
<link rel="prev" href="../icu.html" title=" Working With
Unicode and ICU String Types">
<link rel="next" href="unicode_types.html" title="
Unicode regular expression types">
<link rel="up" href="../icu.html" title="Working With Unicode and ICU String Types">
<link rel="prev" href="../icu.html" title="Working With Unicode and ICU String Types">
<link rel="next" href="unicode_types.html" title="Unicode regular expression types">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,14 +24,13 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.intro"></a><a href="intro.html" title=" Introduction
to using Regex with ICU"> Introduction
to using Regex with ICU</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.icu.intro"></a><a href="intro.html" title="Introduction to using Regex with ICU"> Introduction
to using Regex with ICU</a>
</h5></div></div></div>
<p>
The header:
</p>
<pre class="programlisting">
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
contains the data types and algorithms necessary for working with regular
@ -67,10 +62,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Unicode Regular Expression Algorithms</title>
<title>Unicode Regular Expression Algorithms</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../icu.html" title=" Working With
Unicode and ICU String Types">
<link rel="prev" href="unicode_types.html" title="
Unicode regular expression types">
<link rel="next" href="unicode_iter.html" title="
Unicode Aware Regex Iterators">
<link rel="up" href="../icu.html" title="Working With Unicode and ICU String Types">
<link rel="prev" href="unicode_types.html" title="Unicode regular expression types">
<link rel="next" href="unicode_iter.html" title="Unicode Aware Regex Iterators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,41 +24,40 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo"></a><a href="unicode_algo.html" title="
Unicode Regular Expression Algorithms">
Unicode Regular Expression Algorithms</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo"></a><a href="unicode_algo.html" title="Unicode Regular Expression Algorithms">
Unicode Regular Expression Algorithms</a>
</h5></div></div></div>
<p>
The regular expression algorithms <a href="../../regex_match.html" title=" regex_match"><tt class="computeroutput"><span class="identifier">regex_match</span></tt></a>, <a href="../../regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a> and <a href="../../regex_replace.html" title=" regex_replace"><tt class="computeroutput"><span class="identifier">regex_replace</span></tt></a> all expect that
The regular expression algorithms <a href="../../regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a>, <a href="../../regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a> and <a href="../../regex_replace.html" title="regex_replace"><code class="computeroutput"><span class="identifier">regex_replace</span></code></a> all expect that
the character sequence upon which they operate, is encoded in the same
character encoding as the regular expression object with which they are
used. For Unicode regular expressions that behavior is undesirable: while
we may want to process the data in UTF-32 "chunks", the actual
data is much more likely to encoded as either UTF-8 or UTF-16. Therefore
the header &lt;boost/regex/icu.hpp&gt; provides a series of thin wrappers
around these algorithms, called <tt class="computeroutput"><span class="identifier">u32regex_match</span></tt>,
<tt class="computeroutput"><span class="identifier">u32regex_search</span></tt>, and
<tt class="computeroutput"><span class="identifier">u32regex_replace</span></tt>. These
around these algorithms, called <code class="computeroutput"><span class="identifier">u32regex_match</span></code>,
<code class="computeroutput"><span class="identifier">u32regex_search</span></code>, and
<code class="computeroutput"><span class="identifier">u32regex_replace</span></code>. These
wrappers use iterator-adapters internally to make external UTF-8 or UTF-16
data look as though it's really a UTF-32 sequence, that can then be passed
on to the "real" algorithm.
</p>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match"></a><h4>
<a name="id572213"></a>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match"></a><h5>
<a name="id605222"></a>
<a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match">u32regex_match</a>
</h4>
</h5>
<p>
For each <a href="../../regex_match.html" title=" regex_match"><tt class="computeroutput"><span class="identifier">regex_match</span></tt></a>
algorithm defined by <tt class="computeroutput"><span class="special">&lt;</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">&gt;</span></tt>,
then <tt class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></tt> defines an overloaded algorithm that
takes the same arguments, but which is called <tt class="computeroutput"><span class="identifier">u32regex_match</span></tt>,
For each <a href="../../regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a>
algorithm defined by <code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>,
then <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> defines an overloaded algorithm that
takes the same arguments, but which is called <code class="computeroutput"><span class="identifier">u32regex_match</span></code>,
and which will accept UTF-8, UTF-16 or UTF-32 encoded data, as well as
an ICU UnicodeString as input.
</p>
<p>
Example: match a password, encoded in a UTF-16 UnicodeString:
</p>
<pre class="programlisting">
<span class="comment">//
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// Find out if *password* meets our password requirements,
</span><span class="comment">// as defined by the regular expression *requirements*.
</span><span class="comment">//
@ -74,8 +69,7 @@
<p>
Example: match a UTF-8 encoded filename:
</p>
<pre class="programlisting">
<span class="comment">//
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// Extract filename part of a path from a UTF-8 encoded std::string and return the result
</span><span class="comment">// as another std::string:
</span><span class="comment">//
@ -94,23 +88,22 @@
<span class="special">}</span>
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search"></a><h4>
<a name="id572936"></a>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search"></a><h5>
<a name="id605941"></a>
<a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search">u32regex_search</a>
</h4>
</h5>
<p>
For each <a href="../../regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a>
algorithm defined by <tt class="computeroutput"><span class="special">&lt;</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">&gt;</span></tt>,
then <tt class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></tt> defines an overloaded algorithm that
takes the same arguments, but which is called <tt class="computeroutput"><span class="identifier">u32regex_search</span></tt>,
For each <a href="../../regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>
algorithm defined by <code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>,
then <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> defines an overloaded algorithm that
takes the same arguments, but which is called <code class="computeroutput"><span class="identifier">u32regex_search</span></code>,
and which will accept UTF-8, UTF-16 or UTF-32 encoded data, as well as
an ICU UnicodeString as input.
</p>
<p>
Example: search for a character sequence in a specific language block:
</p>
<pre class="programlisting">
<span class="identifier">UnicodeString</span> <span class="identifier">extract_greek</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UnicodeString</span><span class="special">&amp;</span> <span class="identifier">text</span><span class="special">)</span>
<pre class="programlisting"><span class="identifier">UnicodeString</span> <span class="identifier">extract_greek</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UnicodeString</span><span class="special">&amp;</span> <span class="identifier">text</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">// searches through some UTF-16 encoded text for a block encoded in Greek,
</span> <span class="comment">// this expression is imperfect, but the best we can do for now - searching
@ -134,15 +127,15 @@
<span class="special">}</span>
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace"></a><h4>
<a name="id573532"></a>
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace"></a><h5>
<a name="id606534"></a>
<a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace">u32regex_replace</a>
</h4>
</h5>
<p>
For each <a href="../../regex_replace.html" title=" regex_replace"><tt class="computeroutput"><span class="identifier">regex_replace</span></tt></a> algorithm defined
by <tt class="computeroutput"><span class="special">&lt;</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">&gt;</span></tt>, then <tt class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></tt>
For each <a href="../../regex_replace.html" title="regex_replace"><code class="computeroutput"><span class="identifier">regex_replace</span></code></a> algorithm defined
by <code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>, then <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
defines an overloaded algorithm that takes the same arguments, but which
is called <tt class="computeroutput"><span class="identifier">u32regex_replace</span></tt>,
is called <code class="computeroutput"><span class="identifier">u32regex_replace</span></code>,
and which will accept UTF-8, UTF-16 or UTF-32 encoded data, as well as
an ICU UnicodeString as input. The input sequence and the format string
specifier passed to the algorithm, can be encoded independently (for
@ -153,8 +146,7 @@
<p>
Example: Credit card number reformatting:
</p>
<pre class="programlisting">
<span class="comment">//
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// Take a credit card number as a string of digits,
</span><span class="comment">// and reformat it as a human readable string with "-"
</span><span class="comment">// separating each group of four digit;,
@ -174,10 +166,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Unicode Aware Regex Iterators</title>
<title>Unicode Aware Regex Iterators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../icu.html" title=" Working With
Unicode and ICU String Types">
<link rel="prev" href="unicode_algo.html" title="
Unicode Regular Expression Algorithms">
<link rel="next" href="../mfc_strings.html" title=" Using
Boost Regex With MFC Strings">
<link rel="up" href="../icu.html" title="Working With Unicode and ICU String Types">
<link rel="prev" href="unicode_algo.html" title="Unicode Regular Expression Algorithms">
<link rel="next" href="../mfc_strings.html" title="Using Boost Regex With MFC Strings">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,23 +24,22 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter"></a><a href="unicode_iter.html" title="
Unicode Aware Regex Iterators">
Unicode Aware Regex Iterators</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator"></a><h4>
<a name="id573998"></a>
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter"></a><a href="unicode_iter.html" title="Unicode Aware Regex Iterators">
Unicode Aware Regex Iterators</a>
</h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator"></a><h5>
<a name="id606994"></a>
<a href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator">u32regex_iterator</a>
</h4>
</h5>
<p>
Type <tt class="computeroutput"><span class="identifier">u32regex_iterator</span></tt>
is in all respects the same as <a href="../../regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a> except that since
the regular expression type is always <tt class="computeroutput"><span class="identifier">u32regex</span></tt>
Type <code class="computeroutput"><span class="identifier">u32regex_iterator</span></code>
is in all respects the same as <a href="../../regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> except that since
the regular expression type is always <code class="computeroutput"><span class="identifier">u32regex</span></code>
it only takes one template parameter (the iterator type). It also calls
<tt class="computeroutput"><span class="identifier">u32regex_search</span></tt> internally,
<code class="computeroutput"><span class="identifier">u32regex_search</span></code> internally,
allowing it to interface correctly with UTF-8, UTF-16, and UTF-32 data:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">u32regex_iterator</span>
<span class="special">{</span>
<span class="comment">// for members see regex_iterator
@ -55,12 +50,11 @@
<span class="keyword">typedef</span> <span class="identifier">u32regex_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">UChar32</span><span class="special">*&gt;</span> <span class="identifier">utf32regex_iterator</span><span class="special">;</span>
</pre>
<p>
In order to simplify the construction of a <tt class="computeroutput"><span class="identifier">u32regex_iterator</span></tt>
In order to simplify the construction of a <code class="computeroutput"><span class="identifier">u32regex_iterator</span></code>
from a string, there are a series of non-member helper functions called
make_u32regex_iterator:
</p>
<pre class="programlisting">
<span class="identifier">u32regex_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span>
<pre class="programlisting"><span class="identifier">u32regex_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span>
<span class="identifier">make_u32regex_iterator</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">u32regex</span><span class="special">&amp;</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>
@ -95,8 +89,7 @@
Example: search for international currency symbols, along with their
associated numeric value:
</p>
<pre class="programlisting">
<span class="keyword">void</span> <span class="identifier">enumerate_currencies</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">text</span><span class="special">)</span>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">enumerate_currencies</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">text</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">// enumerate and print all the currency symbols, along
</span> <span class="comment">// with any associated numeric values:
@ -132,20 +125,19 @@
<p>
Provided of course that the input is encoded as UTF-8.
</p>
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator"></a><h4>
<a name="id575751"></a>
<a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator"></a><h5>
<a name="id608741"></a>
<a href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator">u32regex_token_iterator</a>
</h4>
</h5>
<p>
Type <tt class="computeroutput"><span class="identifier">u32regex_token_iterator</span></tt>
is in all respects the same as <a href="../../regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> except
that since the regular expression type is always <tt class="computeroutput"><span class="identifier">u32regex</span></tt>
Type <code class="computeroutput"><span class="identifier">u32regex_token_iterator</span></code>
is in all respects the same as <a href="../../regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> except
that since the regular expression type is always <code class="computeroutput"><span class="identifier">u32regex</span></code>
it only takes one template parameter (the iterator type). It also calls
<tt class="computeroutput"><span class="identifier">u32regex_search</span></tt> internally,
<code class="computeroutput"><span class="identifier">u32regex_search</span></code> internally,
allowing it to interface correctly with UTF-8, UTF-16, and UTF-32 data:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">u32regex_token_iterator</span>
<span class="special">{</span>
<span class="comment">// for members see regex_token_iterator
@ -156,12 +148,11 @@
<span class="keyword">typedef</span> <span class="identifier">u32regex_token_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">UChar32</span><span class="special">*&gt;</span> <span class="identifier">utf32regex_token_iterator</span><span class="special">;</span>
</pre>
<p>
In order to simplify the construction of a <tt class="computeroutput"><span class="identifier">u32regex_token_iterator</span></tt>
In order to simplify the construction of a <code class="computeroutput"><span class="identifier">u32regex_token_iterator</span></code>
from a string, there are a series of non-member helper functions called
<tt class="computeroutput"><span class="identifier">make_u32regex_token_iterator</span></tt>:
<code class="computeroutput"><span class="identifier">make_u32regex_token_iterator</span></code>:
</p>
<pre class="programlisting">
<span class="identifier">u32regex_token_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span>
<pre class="programlisting"><span class="identifier">u32regex_token_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span>
<span class="identifier">make_u32regex_token_iterator</span><span class="special">(</span>
<span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">u32regex</span><span class="special">&amp;</span> <span class="identifier">e</span><span class="special">,</span>
@ -202,8 +193,7 @@
of marked sub-expression sub in regular expression <span class="emphasis"><em>e</em></span>,
found in text <span class="emphasis"><em>s</em></span>, using match_flags <span class="emphasis"><em>m</em></span>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">&gt;</span>
<span class="identifier">u32regex_token_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span>
<span class="identifier">make_u32regex_token_iterator</span><span class="special">(</span>
<span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
@ -248,8 +238,7 @@
for each submatch in regular expression <span class="emphasis"><em>e</em></span>, found
in text <span class="emphasis"><em>s</em></span>, using match_flags <span class="emphasis"><em>m</em></span>.
</p>
<pre class="programlisting">
<span class="identifier">u32regex_token_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span>
<pre class="programlisting"><span class="identifier">u32regex_token_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span>
<span class="identifier">make_u32regex_token_iterator</span><span class="special">(</span>
<span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">u32regex</span><span class="special">&amp;</span> <span class="identifier">e</span><span class="special">,</span>
@ -294,8 +283,7 @@
Example: search for international currency symbols, along with their
associated numeric value:
</p>
<pre class="programlisting">
<span class="keyword">void</span> <span class="identifier">enumerate_currencies2</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">text</span><span class="special">)</span>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">enumerate_currencies2</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">text</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">// enumerate and print all the currency symbols, along
</span> <span class="comment">// with any associated numeric values:
@ -321,10 +309,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Unicode regular expression types</title>
<title>Unicode regular expression types</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../icu.html" title=" Working With
Unicode and ICU String Types">
<link rel="prev" href="intro.html" title=" Introduction
to using Regex with ICU">
<link rel="next" href="unicode_algo.html" title="
Unicode Regular Expression Algorithms">
<link rel="up" href="../icu.html" title="Working With Unicode and ICU String Types">
<link rel="prev" href="intro.html" title="Introduction to using Regex with ICU">
<link rel="next" href="unicode_algo.html" title="Unicode Regular Expression Algorithms">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,113 +24,105 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.icu.unicode_types"></a><a href="unicode_types.html" title="
Unicode regular expression types">
Unicode regular expression types</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.icu.unicode_types"></a><a href="unicode_types.html" title="Unicode regular expression types">
Unicode regular expression types</a>
</h5></div></div></div>
<p>
Header <tt class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></tt> provides a regular expression traits
Header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">icu</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> provides a regular expression traits
class that handles UTF-32 characters:
</p>
<pre class="programlisting">
<span class="keyword">class</span> <span class="identifier">icu_regex_traits</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">icu_regex_traits</span><span class="special">;</span>
</pre>
<p>
and a regular expression type based upon that:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">UChar32</span><span class="special">,</span><span class="identifier">icu_regex_traits</span><span class="special">&gt;</span> <span class="identifier">u32regex</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">UChar32</span><span class="special">,</span><span class="identifier">icu_regex_traits</span><span class="special">&gt;</span> <span class="identifier">u32regex</span><span class="special">;</span>
</pre>
<p>
The type <tt class="computeroutput"><span class="identifier">u32regex</span></tt> is
The type <code class="computeroutput"><span class="identifier">u32regex</span></code> is
regular expression type to use for all Unicode regular expressions; internally
it uses UTF-32 code points, but can be created from, and used to search,
either UTF-8, or UTF-16 encoded strings as well as UTF-32 ones.
</p>
<p>
The constructors, and assign member functions of <tt class="computeroutput"><span class="identifier">u32regex</span></tt>,
The constructors, and assign member functions of <code class="computeroutput"><span class="identifier">u32regex</span></code>,
require UTF-32 encoded strings, but there are a series of overloaded
algorithms called <tt class="computeroutput"><span class="identifier">make_u32regex</span></tt>
algorithms called <code class="computeroutput"><span class="identifier">make_u32regex</span></code>
which allow regular expressions to be created from UTF-8, UTF-16, or
UTF-32 encoded strings:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
<span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="identifier">InputIterator</span> <span class="identifier">i</span><span class="special">,</span>
<span class="identifier">InputIterator</span> <span class="identifier">j</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">opt</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Creates a regular expression
<span class="bold"><strong>Effects</strong></span>: Creates a regular expression
object from the iterator sequence [i,j). The character encoding of the
sequence is determined based upon sizeof(*i): 1 implies UTF-8, 2 implies
UTF-16, and 4 implies UTF-32.
</p>
<pre class="programlisting">
<span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">opt</span>
<span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">perl</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Creates a regular expression
<span class="bold"><strong>Effects</strong></span>: Creates a regular expression
object from the Null-terminated UTF-8 characater sequence <span class="emphasis"><em>p</em></span>.
</p>
<pre class="programlisting">
<span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">opt</span>
<span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">perl</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Creates a regular expression
<span class="bold"><strong>Effects</strong></span>: Creates a regular expression
object from the Null-terminated UTF-8 characater sequence p.
</p>
<pre class="programlisting">
<span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">wchar_t</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">wchar_t</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">opt</span>
<span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">perl</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Creates a regular expression
<span class="bold"><strong>Effects</strong></span>: Creates a regular expression
object from the Null-terminated characater sequence p. The character
encoding of the sequence is determined based upon sizeof(wchar_t): 1
implies UTF-8, 2 implies UTF-16, and 4 implies UTF-32.
</p>
<pre class="programlisting">
<span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UChar</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UChar</span><span class="special">*</span> <span class="identifier">p</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">opt</span>
<span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">perl</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Creates a regular expression
<span class="bold"><strong>Effects</strong></span>: Creates a regular expression
object from the Null-terminated UTF-16 characater sequence p.
</p>
<pre class="programlisting">
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">C</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span>
<span class="identifier">u32regex</span> <span class="identifier">make_u32regex</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">&lt;</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">opt</span>
<span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">perl</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Creates a regular expression
<span class="bold"><strong>Effects</strong></span>: Creates a regular expression
object from the string s. The character encoding of the string is determined
based upon sizeof(C): 1 implies UTF-8, 2 implies UTF-16, and 4 implies
UTF-32.
</p>
<pre class="programlisting">
<span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UnicodeString</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">u32regex</span> <span class="identifier">make_u32regex</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">UnicodeString</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">opt</span>
<span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">perl</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Creates a regular expression
<span class="bold"><strong>Effects</strong></span>: Creates a regular expression
object from the UTF-16 encoding string s.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Using
Boost Regex With MFC Strings</title>
<title>Using Boost Regex With MFC Strings</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../non_std_strings.html" title=" Interfacing With Non-Standard
String Types">
<link rel="prev" href="icu/unicode_iter.html" title="
Unicode Aware Regex Iterators">
<link rel="next" href="mfc_strings/mfc_intro.html" title="
Introduction to Boost.Regex and MFC Strings">
<link rel="up" href="../non_std_strings.html" title="Interfacing With Non-Standard String Types">
<link rel="prev" href="icu/unicode_iter.html" title="Unicode Aware Regex Iterators">
<link rel="next" href="mfc_strings/mfc_intro.html" title="Introduction to Boost.Regex and MFC Strings">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings"></a><a href="mfc_strings.html" title=" Using
Boost Regex With MFC Strings"> Using
Boost Regex With MFC Strings</a></h4></div></div></div>
<a name="boost_regex.ref.non_std_strings.mfc_strings"></a><a href="mfc_strings.html" title="Using Boost Regex With MFC Strings"> Using
Boost Regex With MFC Strings</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="mfc_strings/mfc_intro.html">
Introduction to Boost.Regex and MFC Strings</a></span></dt>
@ -46,10 +42,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Overloaded Algorithms For MFC String Types</title>
<title>Overloaded Algorithms For MFC String Types</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../mfc_strings.html" title=" Using
Boost Regex With MFC Strings">
<link rel="prev" href="mfc_regex_create.html" title="
Regular Expression Creation From an MFC String">
<link rel="next" href="mfc_iter.html" title="
Iterating Over the Matches Within An MFC String">
<link rel="up" href="../mfc_strings.html" title="Using Boost Regex With MFC Strings">
<link rel="prev" href="mfc_regex_create.html" title="Regular Expression Creation From an MFC String">
<link rel="next" href="mfc_iter.html" title="Iterating Over the Matches Within An MFC String">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,31 +24,30 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo"></a><a href="mfc_algo.html" title="
Overloaded Algorithms For MFC String Types">
Overloaded Algorithms For MFC String Types</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo"></a><a href="mfc_algo.html" title="Overloaded Algorithms For MFC String Types">
Overloaded Algorithms For MFC String Types</a>
</h5></div></div></div>
<p>
For each regular expression algorithm that's overloaded for a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></tt> argument, there is also
For each regular expression algorithm that's overloaded for a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></code> argument, there is also
one overloaded for the MFC/ATL string types. These algorithm signatures
all look a lot more complex than they actually are, but for completeness
here they are anyway:
</p>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match"></a><h4>
<a name="id580927"></a>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match"></a><h5>
<a name="id613898"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match">regex_match</a>
</h4>
</h5>
<p>
There are two overloads, the first reports what matched in a match_results
structure, the second does not.
</p>
<p>
All the usual caveats for <a href="../../regex_match.html" title=" regex_match"><tt class="computeroutput"><span class="identifier">regex_match</span></tt></a> apply, in particular
All the usual caveats for <a href="../../regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a> apply, in particular
the algorithm will only report a successful match if all of the input
text matches the expression, if this isn't what you want then use <a href="../../regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a>
text matches the expression, if this isn't what you want then use <a href="../../regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>
instead.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_match</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">B</span><span class="special">*,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">what</span><span class="special">,</span>
@ -60,15 +55,14 @@
<span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span>
<span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</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">f</span><span class="special">);</span></tt>
<span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</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">f</span><span class="special">);</span></code>
</p>
<p>
<span class="bold"><b>Example:</b></span>
<span class="bold"><strong>Example:</strong></span>
</p>
<pre class="programlisting">
<span class="comment">//
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// Extract filename part of a path from a CString and return the result
</span><span class="comment">// as another CString:
</span><span class="comment">//
@ -87,28 +81,26 @@
<span class="special">}</span>
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_"></a><h4>
<a name="id581844"></a>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_"></a><h5>
<a name="id614810"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_">regex_match
(second overload)</a>
</h4>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
</h5>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_match</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
<span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span>
<span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span></tt>
<span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span></code>
</p>
<p>
<span class="bold"><b>Example:</b></span>
<span class="bold"><strong>Example:</strong></span>
</p>
<pre class="programlisting">
<span class="comment">//
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// Find out if *password* meets our password requirements,
</span><span class="comment">// as defined by the regular expression *requirements*.
</span><span class="comment">//
@ -117,31 +109,29 @@
<span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">password</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_regex</span><span class="special">(</span><span class="identifier">requirements</span><span class="special">));</span>
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search"></a><h4>
<a name="id582440"></a>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search"></a><h5>
<a name="id615401"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search">regex_search</a>
</h4>
</h5>
<p>
There are two additional overloads for <a href="../../regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a>, the first reports
There are two additional overloads for <a href="../../regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>, the first reports
what matched the second does not:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">what</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
<span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns ::boost::regex_search(s.GetString(),
<span class="bold"><strong>Effects</strong></span>: returns ::boost::regex_search(s.GetString(),
s.GetString() + s.GetLength(), what, e, f);
</p>
<p>
<span class="bold"><b>Example</b></span>: Postcode extraction from an
<span class="bold"><strong>Example</strong></span>: Postcode extraction from an
address string.
</p>
<pre class="programlisting">
<span class="identifier">CString</span> <span class="identifier">extract_postcode</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CString</span><span class="special">&amp;</span> <span class="identifier">address</span><span class="special">)</span>
<pre class="programlisting"><span class="identifier">CString</span> <span class="identifier">extract_postcode</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CString</span><span class="special">&amp;</span> <span class="identifier">address</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">// searches throw address for a UK postcode and returns the result,
</span> <span class="comment">// the expression used is by Phil A. on www.regxlib.com:
@ -158,32 +148,30 @@
<span class="special">}</span>
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_"></a><h4>
<a name="id583183"></a>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_"></a><h5>
<a name="id616138"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_">regex_search
(second overload)</a>
</h4>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
</h5>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">inline</span> <span class="keyword">bool</span> <span class="identifier">regex_search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
<span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span>
<span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span></tt>
<span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span></code>
</p>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace"></a><h4>
<a name="id583590"></a>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace"></a><h5>
<a name="id616543"></a>
<a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace">regex_replace</a>
</h4>
</h5>
<p>
There are two additional overloads for <a href="../../regex_replace.html" title=" regex_replace"><tt class="computeroutput"><span class="identifier">regex_replace</span></tt></a>, the first sends
There are two additional overloads for <a href="../../regex_replace.html" title="regex_replace"><code class="computeroutput"><span class="identifier">regex_replace</span></code></a>, the first sends
output to an output iterator, while the second creates a new string
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">traits</span><span class="special">,</span> <span class="keyword">class</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">traits</span><span class="special">,</span> <span class="keyword">class</span>
<span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
<span class="identifier">BidirectionalIterator</span> <span class="identifier">first</span><span class="special">,</span>
@ -193,26 +181,24 @@
<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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">out</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">e</span><span class="special">,</span> <span class="identifier">fmt</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="identifier">flags</span><span class="special">);</span></tt>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">out</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">e</span><span class="special">,</span> <span class="identifier">fmt</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span>
<span class="identifier">flags</span><span class="special">);</span></code>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</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>
<span class="bold"><b>Effects</b></span>: returns a new string created
using <a href="../../regex_replace.html" title=" regex_replace"><tt class="computeroutput"><span class="identifier">regex_replace</span></tt></a>,
<span class="bold"><strong>Effects</strong></span>: returns a new string created
using <a href="../../regex_replace.html" title="regex_replace"><code class="computeroutput"><span class="identifier">regex_replace</span></code></a>,
and the same memory manager as string <span class="emphasis"><em>s</em></span>.
</p>
<p>
<span class="bold"><b>Example</b></span>:
<span class="bold"><strong>Example</strong></span>:
</p>
<pre class="programlisting">
<span class="comment">//
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// Take a credit card number as a string of digits,
</span><span class="comment">// and reformat it as a human readable string with "-"
</span><span class="comment">// separating each group of four digits:
@ -228,10 +214,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Introduction to Boost.Regex and MFC Strings</title>
<title>Introduction to Boost.Regex and MFC Strings</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../mfc_strings.html" title=" Using
Boost Regex With MFC Strings">
<link rel="prev" href="../mfc_strings.html" title=" Using
Boost Regex With MFC Strings">
<link rel="next" href="mfc_regex_types.html" title="
Regex Types Used With MFC Strings">
<link rel="up" href="../mfc_strings.html" title="Using Boost Regex With MFC Strings">
<link rel="prev" href="../mfc_strings.html" title="Using Boost Regex With MFC Strings">
<link rel="next" href="mfc_regex_types.html" title="Regex Types Used With MFC Strings">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,11 +24,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_intro"></a><a href="mfc_intro.html" title="
Introduction to Boost.Regex and MFC Strings">
Introduction to Boost.Regex and MFC Strings</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_intro"></a><a href="mfc_intro.html" title="Introduction to Boost.Regex and MFC Strings">
Introduction to Boost.Regex and MFC Strings</a>
</h5></div></div></div>
<p>
The header <tt class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">mfc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></tt> provides Boost.Regex support for
The header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">mfc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> provides Boost.Regex support for
MFC string types: note that this support requires Visual Studio .NET
(Visual C++ 7) or later, where all of the MFC and ATL string types are
based around the CSimpleStringT class template.
@ -42,8 +38,7 @@
then you can substitute any of the following MFC/ATL types (all of which
inherit from CSimpleStringT):
</p>
<pre class="programlisting">
<span class="identifier">CString</span>
<pre class="programlisting"><span class="identifier">CString</span>
<span class="identifier">CStringA</span>
<span class="identifier">CStringW</span>
<span class="identifier">CAtlString</span>
@ -56,10 +51,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,16 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Iterating Over the Matches Within An MFC String</title>
<title>Iterating Over the Matches Within An MFC String</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../mfc_strings.html" title=" Using
Boost Regex With MFC Strings">
<link rel="prev" href="mfc_algo.html" title="
Overloaded Algorithms For MFC String Types">
<link rel="next" href="../../posix.html" title=" POSIX Compatible C API's">
<link rel="up" href="../mfc_strings.html" title="Using Boost Regex With MFC Strings">
<link rel="prev" href="mfc_algo.html" title="Overloaded Algorithms For MFC String Types">
<link rel="next" href="../../posix.html" title="POSIX Compatible C API's">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -27,20 +24,19 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter"></a><a href="mfc_iter.html" title="
Iterating Over the Matches Within An MFC String">
Iterating Over the Matches Within An MFC String</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter"></a><a href="mfc_iter.html" title="Iterating Over the Matches Within An MFC String">
Iterating Over the Matches Within An MFC String</a>
</h5></div></div></div>
<p>
The following helper functions are provided to ease the conversion from
an MFC/ATL string to a <a href="../../regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a> or <a href="../../regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a>:
an MFC/ATL string to a <a href="../../regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> or <a href="../../regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a>:
</p>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper"></a><h4>
<a name="id584678"></a>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper"></a><h5>
<a name="id617624"></a>
<a href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper">regex_iterator
creation helper</a>
</h4>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
</h5>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">regex_iterator</span><span class="special">&lt;</span><span class="identifier">charT</span> <span class="keyword">const</span><span class="special">*&gt;</span>
<span class="identifier">make_regex_iterator</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
@ -48,15 +44,14 @@
<span class="special">::</span><span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="identifier">regex_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="identifier">regex_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="identifier">e</span><span class="special">,</span>
<span class="identifier">f</span><span class="special">);</span></tt>
<span class="identifier">f</span><span class="special">);</span></code>
</p>
<p>
<span class="bold"><b>Example</b></span>:
<span class="bold"><strong>Example</strong></span>:
</p>
<pre class="programlisting">
<span class="keyword">void</span> <span class="identifier">enumerate_links</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CString</span><span class="special">&amp;</span> <span class="identifier">html</span><span class="special">)</span>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">enumerate_links</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CString</span><span class="special">&amp;</span> <span class="identifier">html</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">// enumerate and print all the links in some HTML text,
</span> <span class="comment">// the expression used is by Andew Lee on www.regxlib.com:
@ -72,13 +67,12 @@
<span class="special">}</span>
<span class="special">}</span>
</pre>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers"></a><h4>
<a name="id585433"></a>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers"></a><h5>
<a name="id618372"></a>
<a href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers">regex_token_iterator
creation helpers</a>
</h4>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
</h5>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">regex_token_iterator</span><span class="special">&lt;</span><span class="identifier">charT</span> <span class="keyword">const</span><span class="special">*&gt;</span>
<span class="identifier">make_regex_token_iterator</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
@ -87,13 +81,12 @@
<span class="special">::</span><span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="identifier">e</span><span class="special">,</span>
<span class="identifier">sub</span><span class="special">,</span>
<span class="identifier">f</span><span class="special">);</span></tt>
<span class="identifier">f</span><span class="special">);</span></code>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">regex_token_iterator</span><span class="special">&lt;</span><span class="identifier">charT</span> <span class="keyword">const</span><span class="special">*&gt;</span>
<span class="identifier">make_regex_token_iterator</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
@ -102,13 +95,12 @@
<span class="special">::</span><span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="identifier">e</span><span class="special">,</span>
<span class="identifier">subs</span><span class="special">,</span>
<span class="identifier">f</span><span class="special">);</span></tt>
<span class="identifier">f</span><span class="special">);</span></code>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">&gt;</span>
<span class="identifier">regex_token_iterator</span><span class="special">&lt;</span><span class="identifier">charT</span> <span class="keyword">const</span><span class="special">*&gt;</span>
<span class="identifier">make_regex_token_iterator</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
@ -117,16 +109,15 @@
<span class="special">::</span><span class="identifier">boost</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">f</span> <span class="special">=</span> <span class="identifier">boost</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>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="identifier">e</span><span class="special">,</span>
<span class="identifier">subs</span><span class="special">,</span>
<span class="identifier">f</span><span class="special">);</span></tt>
<span class="identifier">f</span><span class="special">);</span></code>
</p>
<p>
<span class="bold"><b>Example</b></span>:
<span class="bold"><strong>Example</strong></span>:
</p>
<pre class="programlisting">
<span class="keyword">void</span> <span class="identifier">enumerate_links2</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CString</span><span class="special">&amp;</span> <span class="identifier">html</span><span class="special">)</span>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">enumerate_links2</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CString</span><span class="special">&amp;</span> <span class="identifier">html</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">// enumerate and print all the links in some HTML text,
</span> <span class="comment">// the expression used is by Andew Lee on www.regxlib.com:
@ -145,10 +136,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Regular Expression Creation From an MFC String</title>
<title>Regular Expression Creation From an MFC String</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../mfc_strings.html" title=" Using
Boost Regex With MFC Strings">
<link rel="prev" href="mfc_regex_types.html" title="
Regex Types Used With MFC Strings">
<link rel="next" href="mfc_algo.html" title="
Overloaded Algorithms For MFC String Types">
<link rel="up" href="../mfc_strings.html" title="Using Boost Regex With MFC Strings">
<link rel="prev" href="mfc_regex_types.html" title="Regex Types Used With MFC Strings">
<link rel="next" href="mfc_algo.html" title="Overloaded Algorithms For MFC String Types">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,30 +24,30 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_regex_create"></a><a href="mfc_regex_create.html" title="
Regular Expression Creation From an MFC String">
Regular Expression Creation From an MFC String</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_regex_create"></a><a href="mfc_regex_create.html" title="Regular Expression Creation From an MFC String">
Regular Expression Creation From an MFC String</a>
</h5></div></div></div>
<p>
The following helper function is available to assist in the creation
of a regular expression from an MFC/ATL string type:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">make_regex</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ATL</span><span class="special">::</span><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span> <span class="identifier">f</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">normal</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="identifier">f</span><span class="special">);</span></tt>
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetString</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span>
<span class="identifier">f</span><span class="special">);</span></code>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,17 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Regex Types Used With MFC Strings</title>
<title>Regex Types Used With MFC Strings</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../../index.html" title="Boost.Regex">
<link rel="up" href="../mfc_strings.html" title=" Using
Boost Regex With MFC Strings">
<link rel="prev" href="mfc_intro.html" title="
Introduction to Boost.Regex and MFC Strings">
<link rel="next" href="mfc_regex_create.html" title="
Regular Expression Creation From an MFC String">
<link rel="up" href="../mfc_strings.html" title="Using Boost Regex With MFC Strings">
<link rel="prev" href="mfc_intro.html" title="Introduction to Boost.Regex and MFC Strings">
<link rel="next" href="mfc_regex_create.html" title="Regular Expression Creation From an MFC String">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -28,31 +24,31 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h5 class="title">
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_regex_types"></a><a href="mfc_regex_types.html" title="
Regex Types Used With MFC Strings">
Regex Types Used With MFC Strings</a></h5></div></div></div>
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_regex_types"></a><a href="mfc_regex_types.html" title="Regex Types Used With MFC Strings">
Regex Types Used With MFC Strings</a>
</h5></div></div></div>
<p>
The following typedefs are provided for the convenience of those working
with TCHAR's:
</p>
<pre class="programlisting">
<span class="keyword">typedef</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">TCHAR</span><span class="special">&gt;</span> <span class="identifier">tregex</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">TCHAR</span><span class="special">&gt;</span> <span class="identifier">tregex</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">TCHAR</span> <span class="keyword">const</span><span class="special">*&gt;</span> <span class="identifier">tmatch</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">regex_iterator</span><span class="special">&lt;</span><span class="identifier">TCHAR</span> <span class="keyword">const</span><span class="special">*&gt;</span> <span class="identifier">tregex_iterator</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">regex_token_iterator</span><span class="special">&lt;</span><span class="identifier">TCHAR</span> <span class="keyword">const</span><span class="special">*&gt;</span> <span class="identifier">tregex_token_iterator</span><span class="special">;</span>
</pre>
<p>
If you are working with explicitly narrow or wide characters rather than
TCHAR, then use the regular Boost.Regex types <tt class="computeroutput"><span class="identifier">regex</span></tt>
and <tt class="computeroutput"><span class="identifier">wregex</span></tt> instead.
TCHAR, then use the regular Boost.Regex types <code class="computeroutput"><span class="identifier">regex</span></code>
and <code class="computeroutput"><span class="identifier">wregex</span></code> instead.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,14 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> POSIX Compatible C API's</title>
<title>POSIX Compatible C API's</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="non_std_strings/mfc_strings/mfc_iter.html" title="
Iterating Over the Matches Within An MFC String">
<link rel="next" href="concepts.html" title=" Concepts">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="non_std_strings/mfc_strings/mfc_iter.html" title="Iterating Over the Matches Within An MFC String">
<link rel="next" href="concepts.html" title="Concepts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -25,13 +24,14 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.posix"></a><a href="posix.html" title=" POSIX Compatible C API's"> POSIX Compatible C API's</a></h3></div></div></div>
<a name="boost_regex.ref.posix"></a><a href="posix.html" title="POSIX Compatible C API's"> POSIX Compatible C API's</a>
</h3></div></div></div>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td colspan="2" align="left" valign="top"><p>
<tr><td align="left" valign="top"><p>
this is an abridged reference to the POSIX API functions, these are provided
for compatibility with other libraries, rather than as an API to be used
in new code (unless you need access from a language other than C++). This
@ -39,14 +39,12 @@
as the names used are macros that expand to the actual function names.
</p></td></tr>
</table></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
or:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
</pre>
<p>
The following functions are available for users who need a POSIX compatible
@ -59,9 +57,9 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../doc/html/images/important.png"></td>
<th align="left">Important</th>
</tr>
<tr><td colspan="2" align="left" valign="top"><p>
Note that all the symbols defined here are enclosed inside namespace <tt class="computeroutput"><span class="identifier">boost</span></tt> when used in C++ programs, unless
you use <tt class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></tt>
<tr><td align="left" valign="top"><p>
Note that all the symbols defined here are enclosed inside namespace <code class="computeroutput"><span class="identifier">boost</span></code> when used in C++ programs, unless
you use <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
instead - in which case the symbols are still defined in namespace boost,
but are made available in the global namespace as well.
</p></td></tr>
@ -69,8 +67,7 @@
<p>
The functions are defined as:
</p>
<pre class="programlisting">
<span class="keyword">extern</span> <span class="string">"C"</span> <span class="special">{</span>
<pre class="programlisting"><span class="keyword">extern</span> <span class="string">"C"</span> <span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">regex_tA</span><span class="special">;</span>
<span class="keyword">struct</span> <span class="identifier">regex_tW</span><span class="special">;</span>
@ -125,13 +122,13 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">re_nsub</span></tt>
<code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span>
<span class="identifier">re_nsub</span></code>
</p>
</td>
<td>
<p>
This is filled in by <tt class="computeroutput"><span class="identifier">regcomp</span></tt>
This is filled in by <code class="computeroutput"><span class="identifier">regcomp</span></code>
and indicates the number of sub-expressions contained in the regular
expression.
</p>
@ -140,7 +137,7 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="keyword">const</span> <span class="identifier">TCHAR</span><span class="special">*</span> <span class="identifier">re_endp</span></tt>
<code class="computeroutput"><span class="keyword">const</span> <span class="identifier">TCHAR</span><span class="special">*</span> <span class="identifier">re_endp</span></code>
</p>
</td>
<td>
@ -157,23 +154,23 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td colspan="2" align="left" valign="top"><p>
<tt class="computeroutput"><span class="identifier">regex_t</span></tt> is actually a
<tt class="computeroutput"><span class="preprocessor">#define</span></tt> - it is either
<tt class="computeroutput"><span class="identifier">regex_tA</span></tt> or <tt class="computeroutput"><span class="identifier">regex_tW</span></tt> depending upon whether <tt class="computeroutput"><span class="identifier">UNICODE</span></tt> is defined or not, <tt class="computeroutput"><span class="identifier">TCHAR</span></tt> is either <tt class="computeroutput"><span class="keyword">char</span></tt>
or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> again depending
upon the macro <tt class="computeroutput"><span class="identifier">UNICODE</span></tt>.
<tr><td align="left" valign="top"><p>
<code class="computeroutput"><span class="identifier">regex_t</span></code> is actually a
<code class="computeroutput"><span class="preprocessor">#define</span></code> - it is either
<code class="computeroutput"><span class="identifier">regex_tA</span></code> or <code class="computeroutput"><span class="identifier">regex_tW</span></code> depending upon whether <code class="computeroutput"><span class="identifier">UNICODE</span></code> is defined or not, <code class="computeroutput"><span class="identifier">TCHAR</span></code> is either <code class="computeroutput"><span class="keyword">char</span></code>
or <code class="computeroutput"><span class="keyword">wchar_t</span></code> again depending
upon the macro <code class="computeroutput"><span class="identifier">UNICODE</span></code>.
</p></td></tr>
</table></div>
<a name="regcomp"></a><p>
</p>
<a name="boost_regex.ref.posix.regcomp"></a><h4>
<a name="id588362"></a>
<a name="boost_regex.ref.posix.regcomp"></a><h5>
<a name="id621289"></a>
<a href="posix.html#boost_regex.ref.posix.regcomp">regcomp</a>
</h4>
</h5>
<p>
<tt class="computeroutput"><span class="identifier">regcomp</span></tt> takes a pointer to
a <tt class="computeroutput"><span class="identifier">regex_t</span></tt>, a pointer to the
<code class="computeroutput"><span class="identifier">regcomp</span></code> takes a pointer to
a <code class="computeroutput"><span class="identifier">regex_t</span></code>, a pointer to the
expression to compile and a flags parameter which can be a combination of:
</p>
<div class="informaltable"><table class="table">
@ -202,9 +199,9 @@
</td>
<td>
<p>
Compiles modern regular expressions. Equivalent to <tt class="computeroutput"><span class="identifier">regbase</span><span class="special">::</span><span class="identifier">char_classes</span> <span class="special">|</span>
Compiles modern regular expressions. Equivalent to <code class="computeroutput"><span class="identifier">regbase</span><span class="special">::</span><span class="identifier">char_classes</span> <span class="special">|</span>
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">intervals</span> <span class="special">|</span>
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">bk_refs</span></tt>.
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">bk_refs</span></code>.
</p>
</td>
</tr>
@ -217,12 +214,12 @@
<td>
<p>
Compiles basic (obsolete) regular expression syntax. Equivalent to
<tt class="computeroutput"><span class="identifier">regbase</span><span class="special">::</span><span class="identifier">char_classes</span> <span class="special">|</span>
<code class="computeroutput"><span class="identifier">regbase</span><span class="special">::</span><span class="identifier">char_classes</span> <span class="special">|</span>
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">intervals</span> <span class="special">|</span>
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">limited_ops</span> <span class="special">|</span>
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">bk_braces</span> <span class="special">|</span>
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">bk_parens</span> <span class="special">|</span>
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">bk_refs</span></tt>.
<span class="identifier">regbase</span><span class="special">::</span><span class="identifier">bk_refs</span></code>.
</p>
</td>
</tr>
@ -346,8 +343,8 @@
</td>
<td>
<p>
A shortcut for awk-like behavior: <tt class="computeroutput"><span class="identifier">REG_EXTENDED</span>
<span class="special">|</span> <span class="identifier">REG_ESCAPE_IN_LISTS</span></tt>
A shortcut for awk-like behavior: <code class="computeroutput"><span class="identifier">REG_EXTENDED</span>
<span class="special">|</span> <span class="identifier">REG_ESCAPE_IN_LISTS</span></code>
</p>
</td>
</tr>
@ -359,8 +356,8 @@
</td>
<td>
<p>
A shortcut for grep like behavior: <tt class="computeroutput"><span class="identifier">REG_BASIC</span>
<span class="special">|</span> <span class="identifier">REG_NEWLINE_ALT</span></tt>
A shortcut for grep like behavior: <code class="computeroutput"><span class="identifier">REG_BASIC</span>
<span class="special">|</span> <span class="identifier">REG_NEWLINE_ALT</span></code>
</p>
</td>
</tr>
@ -372,8 +369,8 @@
</td>
<td>
<p>
A shortcut for egrep like behavior: <tt class="computeroutput"><span class="identifier">REG_EXTENDED</span>
<span class="special">|</span> <span class="identifier">REG_NEWLINE_ALT</span></tt>
A shortcut for egrep like behavior: <code class="computeroutput"><span class="identifier">REG_EXTENDED</span>
<span class="special">|</span> <span class="identifier">REG_NEWLINE_ALT</span></code>
</p>
</td>
</tr>
@ -381,10 +378,10 @@
</table></div>
<a name="regerror"></a><p>
</p>
<a name="boost_regex.ref.posix.regerror"></a><h4>
<a name="id589006"></a>
<a name="boost_regex.ref.posix.regerror"></a><h5>
<a name="id621933"></a>
<a href="posix.html#boost_regex.ref.posix.regerror">regerror</a>
</h4>
</h5>
<p>
regerror takes the following parameters, it maps an error code to a human
readable string:
@ -469,10 +466,10 @@
</p>
<a name="regexec"></a><p>
</p>
<a name="boost_regex.ref.posix.regexec"></a><h4>
<a name="id589189"></a>
<a name="boost_regex.ref.posix.regexec"></a><h5>
<a name="id622116"></a>
<a href="posix.html#boost_regex.ref.posix.regexec">regexec</a>
</h4>
</h5>
<p>
regexec finds the first occurrence of expression e within string buf. If
len is non-zero then <span class="emphasis"><em>*m</em></span> is filled in with what matched
@ -539,21 +536,22 @@
</table></div>
<a name="regfree"></a><p>
</p>
<a name="boost_regex.ref.posix.regfree"></a><h4>
<a name="id589331"></a>
<a name="boost_regex.ref.posix.regfree"></a><h5>
<a name="id622257"></a>
<a href="posix.html#boost_regex.ref.posix.regfree">regfree</a>
</h4>
</h5>
<p>
<tt class="computeroutput"><span class="identifier">regfree</span></tt> frees all the memory
<code class="computeroutput"><span class="identifier">regfree</span></code> frees all the memory
that was allocated by regcomp.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> regex_iterator</title>
<title>regex_iterator</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<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">
<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">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,15 +24,15 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.regex_iterator"></a><a href="regex_iterator.html" title=" regex_iterator"> regex_iterator</a></h3></div></div></div>
<a name="boost_regex.ref.regex_iterator"></a><a href="regex_iterator.html" title="regex_iterator"> regex_iterator</a>
</h3></div></div></div>
<p>
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
The iterator type <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> will enumerate all
of the regular expression matches found in some sequence: dereferencing a
<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.
<a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>
yields a reference to a <a href="match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> object.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">regex_iterator</span>
@ -77,39 +77,37 @@
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<a name="boost_regex.ref.regex_iterator.description"></a><h4>
<a name="id547078"></a>
<a name="boost_regex.ref.regex_iterator.description"></a><h5>
<a name="id580264"></a>
<a href="regex_iterator.html#boost_regex.ref.regex_iterator.description">Description</a>
</h4>
</h5>
<p>
A <a href="regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a>
A <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>
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 class="programlisting"><span class="identifier">regex_iterator</span><span class="special">();</span>
</pre>
<p>
<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>.
<span class="bold"><strong>Effects</strong></span>: constructs an end of sequence
<a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>.
</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>
<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">&amp;</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>
<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
<span class="bold"><strong>Effects</strong></span>: constructs a <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> that will enumerate
all occurrences of the expression <span class="emphasis"><em>re</em></span>, within the sequence
[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>.
[a,b), and found using <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></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"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>.
</p>
<p>
<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>
<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>
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
@ -118,51 +116,46 @@
</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">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
<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">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: constructs a copy of <tt class="computeroutput"><span class="identifier">that</span></tt>.
<span class="bold"><strong>Effects</strong></span>: constructs a copy of <code class="computeroutput"><span class="identifier">that</span></code>.
</p>
<p>
<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>.
<span class="bold"><strong>Postconditions</strong></span>: <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span> <span class="special">==</span> <span class="identifier">that</span></code>.
</p>
<a name="boost_regex.regex_iterator.assign"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">regex_iterator</span><span class="special">&amp;);</span>
<pre class="programlisting"><span class="identifier">regex_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">regex_iterator</span><span class="special">&amp;);</span>
</pre>
<p>
<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>.
<span class="bold"><strong>Effects</strong></span>: sets <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> equal to those in <code class="computeroutput"><span class="identifier">that</span></code>.
</p>
<p>
<span class="bold"><b>Postconditions</b></span>: *this == that.
<span class="bold"><strong>Postconditions</strong></span>: *this == that.
</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">&amp;</span> <span class="identifier">that</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
<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">&amp;</span> <span class="identifier">that</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: returns true if *this is equal
<span class="bold"><strong>Effects</strong></span>: returns true if *this is equal
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">&amp;)</span><span class="keyword">const</span><span class="special">;</span>
<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">&amp;)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<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>.
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">!(*</span><span class="keyword">this</span> <span class="special">==</span> <span class="identifier">that</span><span class="special">)</span></code>.
</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">&amp;</span> <span class="keyword">operator</span><span class="special">*()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">*()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<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
<span class="bold"><strong>Effects</strong></span>: dereferencing a <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> object it yields
a const reference to a <a href="match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> object, whose members
are set as follows:
</p>
<div class="informaltable"><table class="table">
@ -186,31 +179,31 @@
<tr>
<td>
<p>
<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>
<code class="computeroutput"><span class="special">(*</span><span class="identifier">it</span><span class="special">).</span><span class="identifier">size</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">re</span><span class="special">.</span><span class="identifier">mark_count</span><span class="special">()</span></tt>
<code class="computeroutput"><span class="identifier">re</span><span class="special">.</span><span class="identifier">mark_count</span><span class="special">()</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<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>
<code class="computeroutput"><span class="special">(*</span><span class="identifier">it</span><span class="special">).</span><span class="identifier">empty</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<tt class="computeroutput"><span class="keyword">false</span></tt>
<code class="computeroutput"><span class="keyword">false</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
@ -223,44 +216,44 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
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>
The same as the start of the match found: <code 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></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
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>
True if the prefix did not match an empty string: <code 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></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
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>
The same as the end of the match found: <code 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></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
@ -272,20 +265,20 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
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>
True if the suffix did not match an empty string: <code 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></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
@ -298,7 +291,7 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
@ -310,7 +303,7 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
@ -323,12 +316,12 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</span><span class="special">).</span><span class="identifier">size</span><span class="special">()</span></tt>,
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</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 last.
@ -338,12 +331,12 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</span><span class="special">).</span><span class="identifier">size</span><span class="special">()</span></tt>,
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</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 last.
@ -353,12 +346,12 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</span><span class="special">).</span><span class="identifier">size</span><span class="special">()</span></tt>,
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</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>
@ -367,12 +360,12 @@
<tr>
<td>
<p>
<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>
<code 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></code>
</p>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</span><span class="special">).</span><span class="identifier">size</span><span class="special">()</span></tt>,
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="special">(*</span><span class="identifier">it</span><span class="special">).</span><span class="identifier">size</span><span class="special">()</span></code>,
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>
@ -382,29 +375,27 @@
</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">-&gt;()</span><span class="keyword">const</span><span class="special">;</span>
<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">-&gt;()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="special">&amp;(*</span><span class="keyword">this</span><span class="special">)</span></tt>.
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">&amp;(*</span><span class="keyword">this</span><span class="special">)</span></code>.
</p>
<a name="boost_regex.regex_iterator.op_inc"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++();</span>
<pre class="programlisting"><span class="identifier">regex_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++();</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: moves the iterator to the next
<span class="bold"><strong>Effects</strong></span>: moves the iterator to the next
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
<a href="regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a>
<a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>
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>
<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>
<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>
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
@ -412,24 +403,22 @@
in non-recursive mode).
</p>
<p>
<span class="bold"><b>Returns</b></span>: *this.
<span class="bold"><strong>Returns</strong></span>: *this.
</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 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>
<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>.
<span class="bold"><strong>Effects</strong></span>: constructs a copy result of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>, then
calls <code class="computeroutput"><span class="special">++(*</span><span class="keyword">this</span><span class="special">)</span></code>.
</p>
<p>
<span class="bold"><b>Returns</b></span>: result.
<span class="bold"><strong>Returns</strong></span>: result.
</p>
<a name="boost_regex.regex_iterator.make"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="identifier">regex_iterator</span><span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
@ -441,21 +430,20 @@
<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>
<span class="bold"><b>Effects</b></span>: returns an iterator that enumerates
<span class="bold"><strong>Effects</strong></span>: returns an iterator that enumerates
all occurences of expression <span class="emphasis"><em>e</em></span> in text <span class="emphasis"><em>p</em></span>
using <a href="match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>
using <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>
<span class="emphasis"><em>m</em></span>.
</p>
<a name="boost_regex.ref.regex_iterator.examples"></a><h4>
<a name="id550235"></a>
<a name="boost_regex.ref.regex_iterator.examples"></a><h5>
<a name="id583397"></a>
<a href="regex_iterator.html#boost_regex.ref.regex_iterator.examples">Examples</a>
</h4>
</h5>
<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">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
@ -549,10 +537,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> regex_match</title>
<title>regex_match</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<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">
<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">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,13 +24,13 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.regex_match"></a><a href="regex_match.html" title=" regex_match"> regex_match</a></h3></div></div></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<a name="boost_regex.ref.regex_match"></a><a href="regex_match.html" title="regex_match"> regex_match</a>
</h3></div></div></div>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</pre>
<p>
The algorithm <a href="regex_match.html" title=" regex_match"><tt class="computeroutput"><span class="identifier">regex_match</span></tt></a>
determines whether a given regular expression matches <span class="bold"><b>all</b></span>
The algorithm <a href="regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a>
determines whether a given regular expression matches <span class="bold"><strong>all</strong></span>
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.
@ -40,15 +40,14 @@
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../doc/html/images/important.png"></td>
<th align="left">Important</th>
</tr>
<tr><td colspan="2" align="left" valign="top"><p>
Note that the result is true only if the expression matches the <span class="bold"><b>whole</b></span> of the input sequence. If you want to search
for an expression somewhere within the sequence then use <a href="regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a>. If you want to match
a prefix of the character string then use <a href="regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a> with the flag match_continuous
<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
for an expression somewhere within the sequence then use <a 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 href="regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a> with the flag match_continuous
set.
</p></td></tr>
</table></div>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span> <span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
@ -80,31 +79,30 @@
<span class="keyword">const</span> <span class="identifier">basic_regex</span> <span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<a name="boost_regex.ref.regex_match.description"></a><h4>
<a name="id530617"></a>
<a name="boost_regex.ref.regex_match.description"></a><h5>
<a name="id563869"></a>
<a href="regex_match.html#boost_regex.ref.regex_match.description">Description</a>
</h4>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
</h5>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span> <span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Requires</b></span>: Type BidirectionalIterator meets
<span class="bold"><strong>Requires</strong></span>: Type BidirectionalIterator meets
the requirements of a Bidirectional Iterator (24.1.4).
</p>
<p>
<span class="bold"><b>Effects</b></span>: Determines whether there is an
<span class="bold"><strong>Effects</strong></span>: Determines whether there is an
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>
(see <a href="match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>)
(see <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>)
is used to control how the expression is matched against the character sequence.
Returns true if such a match exists, false otherwise.
</p>
<p>
<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>
<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>
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
@ -112,7 +110,7 @@
in non-recursive mode).
</p>
<p>
<span class="bold"><b>Postconditions</b></span>: If the function returns
<span class="bold"><strong>Postconditions</strong></span>: If the function returns
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:
@ -138,127 +136,127 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>
<code class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">mark_count</span><span class="special">()</span></tt>
<code class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">mark_count</span><span class="special">()</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></tt>
<code class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<tt class="computeroutput"><span class="keyword">false</span></tt>
<code class="computeroutput"><span class="keyword">false</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">first</span></tt>
<code class="computeroutput"><span class="identifier">first</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">first</span></tt>
<code class="computeroutput"><span class="identifier">first</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="keyword">false</span></tt>
<code class="computeroutput"><span class="keyword">false</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">last</span></tt>
<code class="computeroutput"><span class="identifier">last</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">last</span></tt>
<code class="computeroutput"><span class="identifier">last</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="keyword">false</span></tt>
<code class="computeroutput"><span class="keyword">false</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">first</span></tt>
<code class="computeroutput"><span class="identifier">first</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">last</span></tt>
<code class="computeroutput"><span class="identifier">last</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
@ -271,72 +269,69 @@
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>, the start of the sequence that
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</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 <tt class="computeroutput"><span class="identifier">last</span></tt>.
match, then <code class="computeroutput"><span class="identifier">last</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>, the end of the sequence that matched
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</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 <tt class="computeroutput"><span class="identifier">last</span></tt>.
<span class="emphasis"><em>n</em></span> did not participate in the match, then <code class="computeroutput"><span class="identifier">last</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>, true if sub-expression <span class="emphasis"><em>n</em></span>
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</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>
</td>
</tr>
</tbody>
</table></div>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Behaves "as if" by constructing
an instance of <tt class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="identifier">what</span></tt>,
and then returning the result of <tt 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></tt>.
<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">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</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>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span> <span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt 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>
<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>
<span class="special">+</span> <span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;::</span><span class="identifier">length</span><span class="special">(</span><span class="identifier">str</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></tt>.
<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>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">basic_string</span><span class="special">&lt;</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">&gt;::</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
@ -344,37 +339,34 @@
<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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt 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></tt>.
<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>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt 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>
<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>
<span class="special">+</span> <span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;::</span><span class="identifier">length</span><span class="special">(</span><span class="identifier">str</span><span class="special">),</span>
<span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></tt>.
<span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</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">&lt;</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">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span> <span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt 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></tt>.
<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>.
</p>
<a name="boost_regex.ref.regex_match.examples"></a><h4>
<a name="id533809"></a>
<a name="boost_regex.ref.regex_match.examples"></a><h5>
<a name="id567048"></a>
<a href="regex_match.html#boost_regex.ref.regex_match.examples">Examples</a>
</h4>
</h5>
<p>
The following example processes an ftp response:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">stdlib</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">stdlib</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
@ -408,10 +400,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> regex_replace</title>
<title>regex_replace</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="regex_search.html" title=" regex_search">
<link rel="next" href="regex_iterator.html" title=" regex_iterator">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="regex_search.html" title="regex_search">
<link rel="next" href="regex_iterator.html" title="regex_iterator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,22 +24,21 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.regex_replace"></a><a href="regex_replace.html" title=" regex_replace"> regex_replace</a></h3></div></div></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<a name="boost_regex.ref.regex_replace"></a><a href="regex_replace.html" title="regex_replace"> regex_replace</a>
</h3></div></div></div>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</pre>
<p>
The algorithm <a href="regex_replace.html" title=" regex_replace"><tt class="computeroutput"><span class="identifier">regex_replace</span></tt></a> searches through a
The algorithm <a href="regex_replace.html" title="regex_replace"><code class="computeroutput"><span class="identifier">regex_replace</span></code></a> searches through a
string finding all the matches to the regular expression: for each match
it then calls <a href="match_results.html#boost_regex.match_results_format"><tt class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;&gt;::</span><span class="identifier">format</span></tt></a> to format the string and
it then calls <a href="match_results.html#boost_regex.match_results_format"><code class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;&gt;::</span><span class="identifier">format</span></code></a> to format the string and
sends the result to the output iterator. Sections of text that do not match
are copied to the output unchanged only if the <span class="emphasis"><em>flags</em></span>
parameter does not have the flag <tt class="computeroutput"><span class="identifier">format_no_copy</span></tt>
set. If the flag <tt class="computeroutput"><span class="identifier">format_first_only</span></tt>
parameter does not have the flag <code class="computeroutput"><span class="identifier">format_no_copy</span></code>
set. If the flag <code class="computeroutput"><span class="identifier">format_first_only</span></code>
is set then only the first occurrence is replaced rather than all occurrences.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</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>
@ -53,12 +52,11 @@
<span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</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>
<a name="boost_regex.ref.regex_replace.description"></a><h4>
<a name="id541136"></a>
<a name="boost_regex.ref.regex_replace.description"></a><h5>
<a name="id574348"></a>
<a href="regex_replace.html#boost_regex.ref.regex_replace.description">Description</a>
</h4>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
</h5>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</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">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</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>
@ -73,84 +71,76 @@
and copies the resulting string to <span class="emphasis"><em>out</em></span>.
</p>
<p>
If the flag <tt class="computeroutput"><span class="identifier">format_no_copy</span></tt>
If the flag <code class="computeroutput"><span class="identifier">format_no_copy</span></code>
is set in <span class="emphasis"><em>flags</em></span> then unmatched sections of text are
not copied to output.
</p>
<p>
If the flag <tt class="computeroutput"><span class="identifier">format_first_only</span></tt>
If the flag <code class="computeroutput"><span class="identifier">format_first_only</span></code>
is set in flags then only the first occurence of <span class="emphasis"><em>e</em></span> is
replaced.
</p>
<p>
The manner in which the format string <span class="emphasis"><em>fmt</em></span> is interpretted,
along with the rules used for finding matches, are determined by the flags
set in <span class="emphasis"><em>flags</em></span>: see <a href="match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>.
set in <span class="emphasis"><em>flags</em></span>: see <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>.
</p>
<p>
<span class="bold"><b>Effects</b></span>: Constructs an <a href="regex_iterator.html" title=" regex_iterator"><tt class="computeroutput"><span class="identifier">regex_iterator</span></tt></a> object:
<span class="bold"><strong>Effects</strong></span>: Constructs an <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> object:
</p>
<pre class="programlisting">
<span class="identifier">regex_iterator</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</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">Allocator</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="identifier">regex_iterator</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</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">Allocator</span><span class="special">&gt;</span>
<span class="identifier">i</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">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">),</span>
</pre>
<p>
and uses <span class="emphasis"><em>i</em></span> to enumerate through all of the matches
<span class="emphasis"><em>m</em></span> of type <a href="match_results.html" title=" match_results"><tt class="computeroutput"><span class="identifier">match_results</span></tt></a> <tt class="computeroutput"><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span></tt>
<span class="emphasis"><em>m</em></span> of type <a href="match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span></code>
that occur within the sequence [first, last).
</p>
<p>
If no such matches are found and
</p>
<pre class="programlisting">
<span class="special">!(</span><span class="identifier">flags</span> <span class="special">&amp;</span> <span class="identifier">format_no_copy</span><span class="special">)</span>
<pre class="programlisting"><span class="special">!(</span><span class="identifier">flags</span> <span class="special">&amp;</span> <span class="identifier">format_no_copy</span><span class="special">)</span>
</pre>
<p>
then calls
</p>
<pre class="programlisting">
<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</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">out</span><span class="special">).</span>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</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">out</span><span class="special">).</span>
</pre>
<p>
Otherwise, for each match found, if
</p>
<pre class="programlisting">
<span class="special">!(</span><span class="identifier">flags</span> <span class="special">&amp;</span> <span class="identifier">format_no_copy</span><span class="special">)</span>
<pre class="programlisting"><span class="special">!(</span><span class="identifier">flags</span> <span class="special">&amp;</span> <span class="identifier">format_no_copy</span><span class="special">)</span>
</pre>
<p>
calls
</p>
<pre class="programlisting">
<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">m</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="identifier">m</span><span class="special">.</span><span class="identifier">prefix</span><span class="special">().</span><span class="identifier">last</span><span class="special">,</span> <span class="identifier">out</span><span class="special">),</span>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">m</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="identifier">m</span><span class="special">.</span><span class="identifier">prefix</span><span class="special">().</span><span class="identifier">last</span><span class="special">,</span> <span class="identifier">out</span><span class="special">),</span>
</pre>
<p>
and then calls
</p>
<pre class="programlisting">
<span class="identifier">m</span><span class="special">.</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">fmt</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">).</span>
<pre class="programlisting"><span class="identifier">m</span><span class="special">.</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">fmt</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">).</span>
</pre>
<p>
Finally if
</p>
<pre class="programlisting">
<span class="special">!(</span><span class="identifier">flags</span> <span class="special">&amp;</span> <span class="identifier">format_no_copy</span><span class="special">)</span>
<pre class="programlisting"><span class="special">!(</span><span class="identifier">flags</span> <span class="special">&amp;</span> <span class="identifier">format_no_copy</span><span class="special">)</span>
</pre>
<p>
calls
</p>
<pre class="programlisting">
<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">last_m</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="identifier">last_m</span><span class="special">,</span><span class="identifier">suffix</span><span class="special">().</span><span class="identifier">last</span><span class="special">,</span> <span class="identifier">out</span><span class="special">)</span>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">last_m</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="identifier">last_m</span><span class="special">,</span><span class="identifier">suffix</span><span class="special">().</span><span class="identifier">last</span><span class="special">,</span> <span class="identifier">out</span><span class="special">)</span>
</pre>
<p>
where <span class="emphasis"><em>last_m</em></span> is a copy of the last match found.
</p>
<p>
If <tt class="computeroutput"><span class="identifier">flags</span> <span class="special">&amp;</span>
<span class="identifier">format_first_only</span></tt> is non-zero then
If <code class="computeroutput"><span class="identifier">flags</span> <span class="special">&amp;</span>
<span class="identifier">format_first_only</span></code> is non-zero then
only the first match found is replaced.
</p>
<p>
<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>
<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>
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
@ -158,31 +148,29 @@
in non-recursive mode).
</p>
<p>
<span class="bold"><b>Returns</b></span>: out.
<span class="bold"><strong>Returns</strong></span>: out.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">regex_replace</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">e</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;&amp;</span> <span class="identifier">fmt</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>
<span class="bold"><b>Effects</b></span>: Constructs an object <tt class="computeroutput"><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">result</span></tt>, calls <tt class="computeroutput"><span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">result</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="bold"><strong>Effects</strong></span>: Constructs an object <code class="computeroutput"><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="identifier">result</span></code>, calls <code class="computeroutput"><span class="identifier">regex_replace</span><span class="special">(</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">result</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">fmt</span><span class="special">,</span>
<span class="identifier">flags</span><span class="special">)</span></tt>,
and then returns <tt class="computeroutput"><span class="identifier">result</span></tt>.
<span class="identifier">flags</span><span class="special">)</span></code>,
and then returns <code class="computeroutput"><span class="identifier">result</span></code>.
</p>
<a name="boost_regex.ref.regex_replace.examples"></a><h4>
<a name="id542698"></a>
<a name="boost_regex.ref.regex_replace.examples"></a><h5>
<a name="id575897"></a>
<a href="regex_replace.html#boost_regex.ref.regex_replace.examples">Examples</a>
</h4>
</h5>
<p>
The following example takes C/C++ source code as input, and outputs syntax
highlighted HTML code.
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">sstream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
@ -294,10 +282,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> regex_search</title>
<title>regex_search</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="regex_match.html" title=" regex_match">
<link rel="next" href="regex_replace.html" title=" regex_replace">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="regex_match.html" title="regex_match">
<link rel="next" href="regex_replace.html" title="regex_replace">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,19 +24,18 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.regex_search"></a><a href="regex_search.html" title=" regex_search"> regex_search</a></h3></div></div></div>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<a name="boost_regex.ref.regex_search"></a><a href="regex_search.html" title="regex_search"> regex_search</a>
</h3></div></div></div>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
</pre>
<p>
The algorithm <a href="regex_search.html" title=" regex_search"><tt class="computeroutput"><span class="identifier">regex_search</span></tt></a> will search a range
The algorithm <a href="regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a> will search a range
denoted by a pair of bidirectional-iterators for a given regular expression.
The algorithm uses various heuristics to reduce the search time by only checking
for a match if a match could conceivably start at that position. The algorithm
is defined as follows:
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</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">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
@ -73,30 +72,29 @@
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<a name="boost_regex.ref.regex_search.description"></a><h4>
<a name="id536028"></a>
<a name="boost_regex.ref.regex_search.description"></a><h5>
<a name="id569258"></a>
<a href="regex_search.html#boost_regex.ref.regex_search.description">Description</a>
</h4>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
</h5>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</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">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Requires</b></span>: Type BidirectionalIterator meets
<span class="bold"><strong>Requires</strong></span>: Type BidirectionalIterator meets
the requirements of a Bidirectional Iterator (24.1.4).
</p>
<p>
<span class="bold"><b>Effects</b></span>: Determines whether there is some
<span class="bold"><strong>Effects</strong></span>: Determines whether there is some
sub-sequence within [first,last) that matches the regular expression <span class="emphasis"><em>e</em></span>,
parameter <span class="emphasis"><em>flags</em></span> is used to control how the expression
is matched against the character sequence. Returns true if such a sequence
exists, false otherwise.
</p>
<p>
<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>
<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>
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
@ -104,7 +102,7 @@
in non-recursive mode).
</p>
<p>
<span class="bold"><b>Postconditions</b></span>: If the function returns
<span class="bold"><strong>Postconditions</strong></span>: If the function returns
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:
@ -130,105 +128,105 @@
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>
<code class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">mark_count</span><span class="special">()</span></tt>
<code class="computeroutput"><span class="identifier">e</span><span class="special">.</span><span class="identifier">mark_count</span><span class="special">()</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></tt>
<code class="computeroutput"><span class="identifier">m</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<tt class="computeroutput"><span class="keyword">false</span></tt>
<code class="computeroutput"><span class="keyword">false</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">first</span></tt>
<code class="computeroutput"><span class="identifier">first</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt 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></tt>
<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>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt 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> <span class="special">!=</span>
<span class="identifier">m</span><span class="special">.</span><span class="identifier">prefix</span><span class="special">().</span><span class="identifier">second</span></tt>
<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> <span class="special">!=</span>
<span class="identifier">m</span><span class="special">.</span><span class="identifier">prefix</span><span class="special">().</span><span class="identifier">second</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt 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></tt>
<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>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">last</span></tt>
<code class="computeroutput"><span class="identifier">last</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
<tt 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> <span class="special">!=</span>
<span class="identifier">m</span><span class="special">.</span><span class="identifier">suffix</span><span class="special">().</span><span class="identifier">second</span></tt>
<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> <span class="special">!=</span>
<span class="identifier">m</span><span class="special">.</span><span class="identifier">suffix</span><span class="special">().</span><span class="identifier">second</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
@ -241,7 +239,7 @@
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
@ -253,7 +251,7 @@
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
@ -266,12 +264,12 @@
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>, the start of the sequence that
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</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 last.
@ -281,45 +279,43 @@
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>, the end of the sequence that matched
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</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 <tt class="computeroutput"><span class="identifier">last</span></tt>.
<span class="emphasis"><em>n</em></span> did not participate in the match, then <code class="computeroutput"><span class="identifier">last</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt 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></tt>
<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>
</td>
<td>
<p>
For all integers <tt class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>, true if sub-expression <span class="emphasis"><em>n</em></span>
For all integers <code class="computeroutput"><span class="identifier">n</span> <span class="special">&lt;</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>
</td>
</tr>
</tbody>
</table></div>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</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">&lt;</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt class="computeroutput"><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">str</span><span class="special">,</span> <span class="identifier">str</span>
<span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">str</span><span class="special">,</span> <span class="identifier">str</span>
<span class="special">+</span> <span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;::</span><span class="identifier">length</span><span class="special">(</span><span class="identifier">str</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></tt>.
<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>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</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">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">basic_string</span><span class="special">&lt;</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">&gt;::</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">,</span>
@ -327,53 +323,49 @@
<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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt class="computeroutput"><span class="identifier">regex_search</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></tt>.
<span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_search</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>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">iterator</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">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">last</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Behaves "as if" by constructing
an instance of <tt class="computeroutput"><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="identifier">what</span></tt>,
and then returning the result of <tt class="computeroutput"><span class="identifier">regex_search</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></tt>.
<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">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="identifier">what</span></code>,
and then returning the result of <code class="computeroutput"><span class="identifier">regex_search</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>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</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="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt class="computeroutput"><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">str</span><span class="special">,</span> <span class="identifier">str</span>
<span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">str</span><span class="special">,</span> <span class="identifier">str</span>
<span class="special">+</span> <span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">&gt;::</span><span class="identifier">length</span><span class="special">(</span><span class="identifier">str</span><span class="special">),</span>
<span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></tt>.
<span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">bool</span> <span class="identifier">regex_search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_string</span><span class="special">&lt;</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">&gt;&amp;</span> <span class="identifier">s</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</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>
<span class="bold"><b>Effects</b></span>: Returns the result of <tt class="computeroutput"><span class="identifier">regex_search</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></tt>.
<span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_search</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>.
</p>
<a name="boost_regex.ref.regex_search.examples"></a><h4>
<a name="id539302"></a>
<a name="boost_regex.ref.regex_search.examples"></a><h5>
<a name="id572523"></a>
<a href="regex_search.html#boost_regex.ref.regex_search.examples">Examples</a>
</h4>
</h5>
<p>
The following example, takes the contents of a file in the form of a string,
and searches for all the C++ class declarations in the file. The code will
work regardless of the way that <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>
work regardless of the way that <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
is implemented, for example it could easily be modified to work with the
SGI rope class, which uses a non-contiguous storage strategy.
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
@ -417,10 +409,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> regex_token_iterator</title>
<title>regex_token_iterator</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="regex_iterator.html" title=" regex_iterator">
<link rel="next" href="bad_expression.html" title=" bad_expression">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="regex_iterator.html" title="regex_iterator">
<link rel="next" href="bad_expression.html" title="bad_expression">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -24,22 +24,22 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.regex_token_iterator"></a><a href="regex_token_iterator.html" title=" regex_token_iterator"> regex_token_iterator</a></h3></div></div></div>
<a name="boost_regex.ref.regex_token_iterator"></a><a href="regex_token_iterator.html" title="regex_token_iterator"> regex_token_iterator</a>
</h3></div></div></div>
<p>
The template class <a href="regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> is an iterator
The template class <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> is an iterator
adapter; that is to say it represents a new view of an existing iterator
sequence, by enumerating all the occurrences of a regular expression within
that sequence, and presenting one or more character sequence for each match
found. Each position enumerated by the iterator is a <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a> object that represents
found. Each position enumerated by the iterator is a <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object that represents
what matched a particular sub-expression within the regular expression. When
class <a href="regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> is used to
class <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> is used to
enumerate a single sub-expression with index -1, then the iterator performs
field splitting: that is to say it enumerates one character sequence for
each section of the character container sequence that does not match the
regular expression specified.
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">charT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">regex_token_iterator</span>
@ -135,43 +135,41 @@
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;&amp;</span> <span class="identifier">submatch</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>
<a name="boost_regex.ref.regex_token_iterator.description"></a><h4>
<a name="id556067"></a>
<a name="boost_regex.ref.regex_token_iterator.description"></a><h5>
<a name="id589351"></a>
<a href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.description">Description</a>
</h4>
</h5>
<a name="boost_regex.regex_token_iterator.construct1"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_token_iterator</span><span class="special">();</span>
<pre class="programlisting"><span class="identifier">regex_token_iterator</span><span class="special">();</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: constructs an end of sequence iterator.
<span class="bold"><strong>Effects</strong></span>: constructs an end of sequence iterator.
</p>
<a name="boost_regex.regex_token_iterator.construct2"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">BidirectionalIterator</span> <span class="identifier">a</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">regex_token_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">&amp;</span> <span class="identifier">re</span><span class="special">,</span>
<span class="keyword">int</span> <span class="identifier">submatch</span> <span class="special">=</span> <span class="number">0</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>
<span class="bold"><b>Preconditions</b></span>: <tt class="computeroutput"><span class="special">!</span><span class="identifier">re</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></tt>. Object <span class="emphasis"><em>re</em></span> shall exist
<span class="bold"><strong>Preconditions</strong></span>: <code class="computeroutput"><span class="special">!</span><span class="identifier">re</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></code>. Object <span class="emphasis"><em>re</em></span> shall exist
for the lifetime of the iterator constructed from it.
</p>
<p>
<span class="bold"><b>Effects</b></span>: constructs a <a href="regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> that will enumerate
<span class="bold"><strong>Effects</strong></span>: constructs a <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> that will enumerate
one string for each regular expression match of the expression <span class="emphasis"><em>re</em></span>
found within the sequence [a,b), using match flags <span class="emphasis"><em>m</em></span>
(see <a href="match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>).
(see <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>).
The string enumerated is the sub-expression <span class="emphasis"><em>submatch</em></span>
for each match found; if <span class="emphasis"><em>submatch</em></span> is -1, then enumerates
all the text sequences that did not match the expression <span class="emphasis"><em>re</em></span>
(that is to performs field splitting).
</p>
<p>
<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>
<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>
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
@ -180,33 +178,32 @@
</p>
<a name="boost_regex.regex_token_iterator.construct3"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="identifier">BidirectionalIterator</span> <span class="identifier">a</span><span class="special">,</span>
<pre class="programlisting"><span class="identifier">regex_token_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">&amp;</span> <span class="identifier">re</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;&amp;</span> <span class="identifier">submatches</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>
<span class="bold"><b>Preconditions</b></span>: <tt class="computeroutput"><span class="identifier">submatches</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span>
<span class="special">&amp;&amp;</span> <span class="special">!</span><span class="identifier">re</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></tt>. Object <span class="emphasis"><em>re</em></span> shall exist
<span class="bold"><strong>Preconditions</strong></span>: <code class="computeroutput"><span class="identifier">submatches</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span>
<span class="special">&amp;&amp;</span> <span class="special">!</span><span class="identifier">re</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></code>. Object <span class="emphasis"><em>re</em></span> shall exist
for the lifetime of the iterator constructed from it.
</p>
<p>
<span class="bold"><b>Effects</b></span>: constructs a <a href="regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> that will enumerate
<tt class="computeroutput"><span class="identifier">submatches</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></tt>
<span class="bold"><strong>Effects</strong></span>: constructs a <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> that will enumerate
<code class="computeroutput"><span class="identifier">submatches</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
strings for each regular expression match of the expression <span class="emphasis"><em>re</em></span>
found within the sequence [a,b), using match flags <span class="emphasis"><em>m</em></span>
(see <a href="match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>).
(see <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>).
For each match found one string will be enumerated for each sub-expression
index contained within submatches vector; if <tt class="computeroutput"><span class="identifier">submatches</span><span class="special">[</span><span class="number">0</span><span class="special">]</span></tt>
index contained within submatches vector; if <code class="computeroutput"><span class="identifier">submatches</span><span class="special">[</span><span class="number">0</span><span class="special">]</span></code>
is -1, then the first string enumerated for each match will be all of the
text from end of the last match to the start of the current match, in addition
there will be one extra string enumerated when no more matches can be found:
from the end of the last match found, to the end of the underlying sequence.
</p>
<p>
<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>
<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>
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
@ -215,8 +212,7 @@
</p>
<a name="boost_regex.regex_token_iterator.construct4"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">&gt;</span>
<span class="identifier">regex_token_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">&amp;</span> <span class="identifier">re</span><span class="special">,</span>
@ -224,23 +220,23 @@
<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>
<span class="bold"><b>Preconditions</b></span>: <tt class="computeroutput"><span class="special">!</span><span class="identifier">re</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></tt>. Object <span class="emphasis"><em>re</em></span> shall exist
<span class="bold"><strong>Preconditions</strong></span>: <code class="computeroutput"><span class="special">!</span><span class="identifier">re</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span></code>. Object <span class="emphasis"><em>re</em></span> shall exist
for the lifetime of the iterator constructed from it.
</p>
<p>
<span class="bold"><b>Effects</b></span>: constructs a <a href="regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> that will enumerate
<span class="bold"><strong>Effects</strong></span>: constructs a <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> that will enumerate
<span class="emphasis"><em>R</em></span> strings for each regular expression match of the expression
<span class="emphasis"><em>re</em></span> found within the sequence [a,b), using match flags
<span class="emphasis"><em>m</em></span> (see <a href="match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>). For each match
<span class="emphasis"><em>m</em></span> (see <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>). For each match
found one string will be enumerated for each sub-expression index contained
within the <span class="emphasis"><em>submatches</em></span> array; if <tt class="computeroutput"><span class="identifier">submatches</span><span class="special">[</span><span class="number">0</span><span class="special">]</span></tt>
within the <span class="emphasis"><em>submatches</em></span> array; if <code class="computeroutput"><span class="identifier">submatches</span><span class="special">[</span><span class="number">0</span><span class="special">]</span></code>
is -1, then the first string enumerated for each match will be all of the
text from end of the last match to the start of the current match, in addition
there will be one extra string enumerated when no more matches can be found:
from the end of the last match found, to the end of the underlying sequence.
</p>
<p>
<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>
<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>
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
@ -249,70 +245,63 @@
</p>
<a name="boost_regex.regex_token_iterator.construct5"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">regex_token_iterator</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: constructs a copy of <tt class="computeroutput"><span class="identifier">that</span></tt>.
<span class="bold"><strong>Effects</strong></span>: constructs a copy of <code class="computeroutput"><span class="identifier">that</span></code>.
</p>
<p>
<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>.
<span class="bold"><strong>Postconditions</strong></span>: <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span> <span class="special">==</span> <span class="identifier">that</span></code>.
</p>
<a name="boost_regex.regex_token_iterator.assign"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: sets <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt> to be equal to <tt class="computeroutput"><span class="identifier">that</span></tt>.
<span class="bold"><strong>Effects</strong></span>: sets <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> to be equal to <code class="computeroutput"><span class="identifier">that</span></code>.
</p>
<p>
<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>.
<span class="bold"><strong>Postconditions</strong></span>: <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span> <span class="special">==</span> <span class="identifier">that</span></code>.
</p>
<a name="boost_regex.regex_token_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_token_iterator</span><span class="special">&amp;)</span><span class="keyword">const</span><span class="special">;</span>
<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_token_iterator</span><span class="special">&amp;)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: returns true if <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt> is the same position as <tt class="computeroutput"><span class="identifier">that</span></tt>.
<span class="bold"><strong>Effects</strong></span>: returns true if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> is the same position as <code class="computeroutput"><span class="identifier">that</span></code>.
</p>
<a name="boost_regex.regex_token_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_token_iterator</span><span class="special">&amp;)</span><span class="keyword">const</span><span class="special">;</span>
<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_token_iterator</span><span class="special">&amp;)</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<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>.
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">!(*</span><span class="keyword">this</span> <span class="special">==</span> <span class="identifier">that</span><span class="special">)</span></code>.
</p>
<a name="boost_regex.regex_token_iterator.op_deref"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">*()</span><span class="keyword">const</span><span class="special">;</span>
<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">*()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: returns the current character sequence
<span class="bold"><strong>Effects</strong></span>: returns the current character sequence
being enumerated.
</p>
<a name="boost_regex.regex_token_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">-&gt;()</span><span class="keyword">const</span><span class="special">;</span>
<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">-&gt;()</span><span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: returns <tt class="computeroutput"><span class="special">&amp;(*</span><span class="keyword">this</span><span class="special">)</span></tt>.
<span class="bold"><strong>Effects</strong></span>: returns <code class="computeroutput"><span class="special">&amp;(*</span><span class="keyword">this</span><span class="special">)</span></code>.
</p>
<a name="boost_regex.regex_token_iterator.op_inc1"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++();</span>
<pre class="programlisting"><span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++();</span>
</pre>
<p>
<span class="bold"><b>Effects</b></span>: Moves on to the next character
<span class="bold"><strong>Effects</strong></span>: Moves on to the next character
sequence to be enumerated.
</p>
<p>
<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>
<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>
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
@ -320,24 +309,22 @@
in non-recursive mode).
</p>
<p>
<span class="bold"><b>Returns</b></span>: <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt>.
<span class="bold"><strong>Returns</strong></span>: <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
</p>
<a name="boost_regex.regex_token_iterator.op_inc2"></a><p>
</p>
<pre class="programlisting">
<span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
<pre class="programlisting"><span class="identifier">regex_token_iterator</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
</pre>
<p>
<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>.
<span class="bold"><strong>Effects</strong></span>: constructs a copy result of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>, then
calls <code class="computeroutput"><span class="special">++(*</span><span class="keyword">this</span><span class="special">)</span></code>.
</p>
<p>
<span class="bold"><b>Returns</b></span>: result.
<span class="bold"><strong>Returns</strong></span>: result.
</p>
<a name="boost_regex.regex_token_iterator.make"></a><p>
</p>
<pre class="programlisting">
<span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</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">&gt;</span>
<span class="identifier">regex_token_iterator</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">make_regex_token_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>
@ -388,22 +375,21 @@
<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>
<span class="bold"><b>Effects</b></span>: returns a <a href="regex_token_iterator.html" title=" regex_token_iterator"><tt class="computeroutput"><span class="identifier">regex_token_iterator</span></tt></a> that enumerates
one <a href="sub_match.html" title=" sub_match"><tt class="computeroutput"><span class="identifier">sub_match</span></tt></a>
<span class="bold"><strong>Effects</strong></span>: returns a <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a> that enumerates
one <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
for each value in <span class="emphasis"><em>submatch</em></span> for each occurrence of regular
expression <span class="emphasis"><em>e</em></span> in string <span class="emphasis"><em>p</em></span>, matched
using <a href="match_flag_type.html" title=" match_flag_type"><tt class="computeroutput"><span class="identifier">match_flag_type</span></tt></a>
using <a href="match_flag_type.html" title="match_flag_type"><code class="computeroutput"><span class="identifier">match_flag_type</span></code></a>
<span class="emphasis"><em>m</em></span>.
</p>
<a name="boost_regex.ref.regex_token_iterator.examples"></a><h4>
<a name="id560313"></a>
<a name="boost_regex.ref.regex_token_iterator.examples"></a><h5>
<a name="id593568"></a>
<a href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.examples">Examples</a>
</h4>
</h5>
<p>
The following example takes a string and splits it into a series of tokens:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
@ -441,8 +427,7 @@
The following example takes a html file and outputs a list of all the linked
files:
</p>
<pre class="programlisting">
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
@ -511,10 +496,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,14 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> regex_traits</title>
<title>regex_traits</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="error_type.html" title=" error_type">
<link rel="next" href="non_std_strings.html" title=" Interfacing With Non-Standard
String Types">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="error_type.html" title="error_type">
<link rel="next" href="non_std_strings.html" title="Interfacing With Non-Standard String Types">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -25,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.regex_traits"></a><a href="regex_traits.html" title=" regex_traits"> regex_traits</a></h3></div></div></div>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
<a name="boost_regex.ref.regex_traits"></a><a href="regex_traits.html" title="regex_traits"> regex_traits</a>
</h3></div></div></div>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">implementationT</span> <span class="special">=</span> <span class="identifier">sensible_default_choice</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">regex_traits</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">implementationT</span>
@ -39,35 +38,35 @@
<span class="keyword">struct</span> <span class="identifier">c_regex_traits</span><span class="special">;</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">cpp_regex_traits</span><span class="special">;</span>
<span class="keyword">class</span> <span class="identifier">cpp_regex_traits</span><span class="special">;</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">w32_regex_traits</span><span class="special">;</span>
<span class="keyword">class</span> <span class="identifier">w32_regex_traits</span><span class="special">;</span>
<span class="special">}</span> <span class="comment">// namespace boost
</span></pre>
<a name="boost_regex.ref.regex_traits.description"></a><h4>
<a name="id570424"></a>
<a name="boost_regex.ref.regex_traits.description"></a><h5>
<a name="id603469"></a>
<a href="regex_traits.html#boost_regex.ref.regex_traits.description">Description</a>
</h4>
</h5>
<p>
The class <tt class="computeroutput"><span class="identifier">regex_traits</span></tt> is
The class <code class="computeroutput"><span class="identifier">regex_traits</span></code> is
just a thin wrapper around an actual implemention class, which may be one
of:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<tt class="computeroutput"><span class="identifier">c_regex_traits</span></tt>: this class
<code class="computeroutput"><span class="identifier">c_regex_traits</span></code>: this class
is deprecated, it wraps the C locale, and is used as the default implementation
when the platform is not Win32, and the C++ locale is not available.
</li>
<li>
<tt class="computeroutput"><span class="identifier">cpp_regex_traits</span></tt>: the default
<code class="computeroutput"><span class="identifier">cpp_regex_traits</span></code>: the default
traits class for non-Win32 platforms, allows the regex class to be imbued
with a std::locale instance.
</li>
<li>
<tt class="computeroutput"><span class="identifier">w32_regex_traits</span></tt>: the default
<code class="computeroutput"><span class="identifier">w32_regex_traits</span></code>: the default
traits class implementation on Win32 platforms, allows the regex class
to be imbued with an LCID.
</li>
@ -78,26 +77,26 @@
</p>
<div class="itemizedlist"><ul type="disc">
<li>
BOOST_REGEX_USE_C_LOCALE: makes <tt class="computeroutput"><span class="identifier">c_regex_traits</span></tt>
BOOST_REGEX_USE_C_LOCALE: makes <code class="computeroutput"><span class="identifier">c_regex_traits</span></code>
the default.
</li>
<li>
BOOST_REGEX_USE_CPP_LOCALE: makes <tt class="computeroutput"><span class="identifier">cpp_regex_traits</span></tt>
BOOST_REGEX_USE_CPP_LOCALE: makes <code class="computeroutput"><span class="identifier">cpp_regex_traits</span></code>
the default.
</li>
</ul></div>
<p>
All these traits classes fulfil the <a href="concepts/traits_concept.html" title=" Traits Class
Requirements">traits
All these traits classes fulfil the <a href="concepts/traits_concept.html" title="Traits Class Requirements">traits
class requirements</a>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> syntax_option_type</title>
<title>syntax_option_type</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../ref.html" title=" Reference">
<link rel="prev" href="bad_expression.html" title=" bad_expression">
<link rel="next" href="syntax_option_type/syntax_option_type_synopsis.html" title="
syntax_option_type Synopsis">
<link rel="up" href="../ref.html" title="Reference">
<link rel="prev" href="bad_expression.html" title="bad_expression">
<link rel="next" href="syntax_option_type/syntax_option_type_synopsis.html" title="syntax_option_type Synopsis">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -25,7 +24,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.ref.syntax_option_type"></a><a href="syntax_option_type.html" title=" syntax_option_type"> syntax_option_type</a></h3></div></div></div>
<a name="boost_regex.ref.syntax_option_type"></a><a href="syntax_option_type.html" title="syntax_option_type"> syntax_option_type</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="syntax_option_type/syntax_option_type_synopsis.html">
syntax_option_type Synopsis</a></span></dt>
@ -43,10 +43,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,16 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Options for POSIX Basic Regular Expressions</title>
<title>Options for POSIX Basic Regular Expressions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../syntax_option_type.html" title=" syntax_option_type">
<link rel="prev" href="syntax_option_type_extended.html" title="
Options for POSIX Extended Regular Expressions">
<link rel="next" href="syntax_option_type_literal.html" title="
Options for Literal Strings">
<link rel="up" href="../syntax_option_type.html" title="syntax_option_type">
<link rel="prev" href="syntax_option_type_extended.html" title="Options for POSIX Extended Regular Expressions">
<link rel="next" href="syntax_option_type_literal.html" title="Options for Literal Strings">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -27,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_basic"></a><a href="syntax_option_type_basic.html" title="
Options for POSIX Basic Regular Expressions">
Options for POSIX Basic Regular Expressions</a></h4></div></div></div>
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_basic"></a><a href="syntax_option_type_basic.html" title="Options for POSIX Basic Regular Expressions">
Options for POSIX Basic Regular Expressions</a>
</h4></div></div></div>
<p>
Exactly one of the following must always be set for POSIX basic regular
expressions:
@ -72,8 +69,7 @@
<td>
<p>
Specifies that the grammar recognized by the regular expression
engine is the same as that used by <a href="../../syntax/basic_syntax.html" title=" POSIX Basic Regular
Expression Syntax">POSIX
engine is the same as that used by <a href="../../syntax/basic_syntax.html" title="POSIX Basic Regular Expression Syntax">POSIX
basic regular expressions</a> in IEEE Std 1003.1-2001, Portable
Operating System Interface (POSIX ), Base Definitions and Headers,
Section 9, Regular Expressions (FWD.1).
@ -111,13 +107,12 @@
<td>
<p>
Specifies that the grammar recognized by the regular expression
engine is the same as that used by POSIX utility <tt class="computeroutput"><span class="identifier">grep</span></tt> in IEEE Std 1003.1-2001,
engine is the same as that used by POSIX utility <code class="computeroutput"><span class="identifier">grep</span></code> in IEEE Std 1003.1-2001,
Portable Operating System Interface (POSIX ), Shells and Utilities,
Section 4, Utilit\ies, grep (FWD.1).
</p>
<p>
That is to say, the same as <a href="../../syntax/basic_syntax.html" title=" POSIX Basic Regular
Expression Syntax">POSIX
That is to say, the same as <a href="../../syntax/basic_syntax.html" title="POSIX Basic Regular Expression Syntax">POSIX
basic syntax</a>, but with the newline character acting as an
alternation character; the expression is treated as a newline separated
list of alternatives.
@ -137,8 +132,7 @@
</td>
<td>
<p>
Specifies that the grammar recognised is the superset of the <a href="../../syntax/basic_syntax.html" title=" POSIX Basic Regular
Expression Syntax">POSIX-Basic syntax</a>
Specifies that the grammar recognised is the superset of the <a href="../../syntax/basic_syntax.html" title="POSIX Basic Regular Expression Syntax">POSIX-Basic syntax</a>
used by the emacs program.
</p>
</td>
@ -205,7 +199,7 @@
<p>
Specifies that when a regular expression is matched against a character
container sequence, then no sub-expression matches are to be stored
in the supplied <a href="../match_results.html" title=" match_results"><tt class="computeroutput"><span class="identifier">match_results</span></tt></a> structure.
in the supplied <a href="../match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> structure.
</p>
</td>
</tr>
@ -243,9 +237,8 @@
</td>
<td>
<p>
Specifies that character ranges of the form <tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">b</span><span class="special">]</span></tt>
should be locale sensitive. This bit is on by default for <a href="../../syntax/basic_syntax.html" title=" POSIX Basic Regular
Expression Syntax">POSIX-Basic regular expressions</a>,
Specifies that character ranges of the form <code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">b</span><span class="special">]</span></code>
should be locale sensitive. This bit is on by default for <a href="../../syntax/basic_syntax.html" title="POSIX Basic Regular Expression Syntax">POSIX-Basic regular expressions</a>,
but can be unset to force ranges to be compared by code point only.
</p>
</td>
@ -265,7 +258,7 @@
<p>
Specifies that the \n character has the same effect as the alternation
operator |. Allows newline separated lists to be used as a list
of alternatives. This bit is already set, if you use the <tt class="computeroutput"><span class="identifier">grep</span></tt> option.
of alternatives. This bit is already set, if you use the <code class="computeroutput"><span class="identifier">grep</span></code> option.
</p>
</td>
</tr>
@ -282,7 +275,7 @@
</td>
<td>
<p>
When set then character classes such as <tt class="computeroutput"><span class="special">[[:</span><span class="identifier">alnum</span><span class="special">:]]</span></tt>
When set then character classes such as <code class="computeroutput"><span class="special">[[:</span><span class="identifier">alnum</span><span class="special">:]]</span></code>
are not allowed.
</p>
</td>
@ -301,9 +294,8 @@
<td>
<p>
When set this makes the escape character ordinary inside lists,
so that <tt class="computeroutput"><span class="special">[\</span><span class="identifier">b</span><span class="special">]</span></tt> would match either '\' or 'b'.
This bit is on by default for <a href="../../syntax/basic_syntax.html" title=" POSIX Basic Regular
Expression Syntax">POSIX-basic
so that <code class="computeroutput"><span class="special">[\</span><span class="identifier">b</span><span class="special">]</span></code> would match either '\' or 'b'.
This bit is on by default for <a href="../../syntax/basic_syntax.html" title="POSIX Basic Regular Expression Syntax">POSIX-basic
regular expressions</a>, but can be unset to force escapes to
be recognised inside lists.
</p>
@ -339,8 +331,8 @@
</td>
<td>
<p>
When set then <tt class="computeroutput"><span class="special">\?</span></tt> acts
as a zero-or-one repeat operator, and <tt class="computeroutput"><span class="special">\+</span></tt>
When set then <code class="computeroutput"><span class="special">\?</span></code> acts
as a zero-or-one repeat operator, and <code class="computeroutput"><span class="special">\+</span></code>
acts as a one-or-more repeat operator.
</p>
</td>
@ -358,7 +350,7 @@
</td>
<td>
<p>
When set then <tt class="computeroutput"><span class="special">\|</span></tt> acts
When set then <code class="computeroutput"><span class="special">\|</span></code> acts
as the alternation operator.
</p>
</td>
@ -376,7 +368,7 @@
</td>
<td>
<p>
Prevents <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a> from throwing
Prevents <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> from throwing
an exception when an invalid expression is encountered.
</p>
</td>
@ -386,10 +378,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,16 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Options for POSIX Extended Regular Expressions</title>
<title>Options for POSIX Extended Regular Expressions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../syntax_option_type.html" title=" syntax_option_type">
<link rel="prev" href="syntax_option_type_perl.html" title="
Options for Perl Regular Expressions">
<link rel="next" href="syntax_option_type_basic.html" title="
Options for POSIX Basic Regular Expressions">
<link rel="up" href="../syntax_option_type.html" title="syntax_option_type">
<link rel="prev" href="syntax_option_type_perl.html" title="Options for Perl Regular Expressions">
<link rel="next" href="syntax_option_type_basic.html" title="Options for POSIX Basic Regular Expressions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -27,12 +24,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_extended"></a><a href="syntax_option_type_extended.html" title="
Options for POSIX Extended Regular Expressions">
Options for POSIX Extended Regular Expressions</a></h4></div></div></div>
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_extended"></a><a href="syntax_option_type_extended.html" title="Options for POSIX Extended Regular Expressions">
Options for POSIX Extended Regular Expressions</a>
</h4></div></div></div>
<p>
Exactly one of the following must always be set for <a href="../../syntax/basic_extended.html" title=" POSIX Extended Regular
Expression Syntax">POSIX
Exactly one of the following must always be set for <a href="../../syntax/basic_extended.html" title="POSIX Extended Regular Expression Syntax">POSIX
extended regular expressions</a>:
</p>
<div class="informaltable"><table class="table">
@ -79,8 +75,7 @@
(FWD.1).
</p>
<p>
Refer to the <a href="../../syntax/basic_extended.html" title=" POSIX Extended Regular
Expression Syntax">POSIX
Refer to the <a href="../../syntax/basic_extended.html" title="POSIX Extended Regular Expression Syntax">POSIX
extended regular expression guide</a> for more information.
</p>
<p>
@ -111,8 +106,7 @@
grep (FWD.1).
</p>
<p>
That is to say, the same as <a href="../../syntax/basic_extended.html" title=" POSIX Extended Regular
Expression Syntax">POSIX
That is to say, the same as <a href="../../syntax/basic_extended.html" title="POSIX Extended Regular Expression Syntax">POSIX
extended syntax</a>, but with the newline character acting as
an alternation character in addition to "|".
</p>
@ -137,8 +131,7 @@
and Utilities, Section 4, awk (FWD.1).
</p>
<p>
That is to say: the same as <a href="../../syntax/basic_extended.html" title=" POSIX Extended Regular
Expression Syntax">POSIX
That is to say: the same as <a href="../../syntax/basic_extended.html" title="POSIX Extended Regular Expression Syntax">POSIX
extended syntax</a>, but with escape sequences in character
classes permitted.
</p>
@ -214,7 +207,7 @@
<p>
Specifies that when a regular expression is matched against a character
container sequence, then no sub-expression matches are to be stored
in the supplied <a href="../match_results.html" title=" match_results"><tt class="computeroutput"><span class="identifier">match_results</span></tt></a> structure.
in the supplied <a href="../match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> structure.
</p>
</td>
</tr>
@ -252,7 +245,7 @@
</td>
<td>
<p>
Specifies that character ranges of the form <tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">b</span><span class="special">]</span></tt>
Specifies that character ranges of the form <code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">b</span><span class="special">]</span></code>
should be locale sensitive. This bit is on by default for POSIX-Extended
regular expressions, but can be unset to force ranges to be compared
by code point only.
@ -292,7 +285,7 @@
<td>
<p>
When set this makes the escape character ordinary inside lists,
so that <tt class="computeroutput"><span class="special">[\</span><span class="identifier">b</span><span class="special">]</span></tt> would match either '\' or 'b'.
so that <code class="computeroutput"><span class="special">[\</span><span class="identifier">b</span><span class="special">]</span></code> would match either '\' or 'b'.
This bit is on by default for POSIX-Extended regular expressions,
but can be unset to force escapes to be recognised inside lists.
</p>
@ -330,7 +323,7 @@
</td>
<td>
<p>
Prevents <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a> from throwing
Prevents <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> from throwing
an exception when an invalid expression is encountered.
</p>
</td>
@ -340,10 +333,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,15 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Options for Literal Strings</title>
<title>Options for Literal Strings</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../syntax_option_type.html" title=" syntax_option_type">
<link rel="prev" href="syntax_option_type_basic.html" title="
Options for POSIX Basic Regular Expressions">
<link rel="next" href="../match_flag_type.html" title=" match_flag_type">
<link rel="up" href="../syntax_option_type.html" title="syntax_option_type">
<link rel="prev" href="syntax_option_type_basic.html" title="Options for POSIX Basic Regular Expressions">
<link rel="next" href="../match_flag_type.html" title="match_flag_type">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -26,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_literal"></a><a href="syntax_option_type_literal.html" title="
Options for Literal Strings">
Options for Literal Strings</a></h4></div></div></div>
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_literal"></a><a href="syntax_option_type_literal.html" title="Options for Literal Strings">
Options for Literal Strings</a>
</h4></div></div></div>
<p>
The following must always be set to interpret the expression as a string
literal:
@ -145,10 +143,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,16 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Overview of syntax_option_type</title>
<title>Overview of syntax_option_type</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../syntax_option_type.html" title=" syntax_option_type">
<link rel="prev" href="syntax_option_type_synopsis.html" title="
syntax_option_type Synopsis">
<link rel="next" href="syntax_option_type_perl.html" title="
Options for Perl Regular Expressions">
<link rel="up" href="../syntax_option_type.html" title="syntax_option_type">
<link rel="prev" href="syntax_option_type_synopsis.html" title="syntax_option_type Synopsis">
<link rel="next" href="syntax_option_type_perl.html" title="Options for Perl Regular Expressions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -27,38 +24,35 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_overview"></a><a href="syntax_option_type_overview.html" title="
Overview of syntax_option_type">
Overview of syntax_option_type</a></h4></div></div></div>
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_overview"></a><a href="syntax_option_type_overview.html" title="Overview of syntax_option_type">
Overview of syntax_option_type</a>
</h4></div></div></div>
<p>
The type <a href="../syntax_option_type.html" title=" syntax_option_type"><tt class="computeroutput"><span class="identifier">syntax_option_type</span></tt></a> is an implementation
The type <a href="../syntax_option_type.html" title="syntax_option_type"><code class="computeroutput"><span class="identifier">syntax_option_type</span></code></a> is an implementation
specific bitmask type (see C++ standard 17.3.2.1.2). Setting its elements
has the effects listed in the table below, a valid value of type <a href="../syntax_option_type.html" title=" syntax_option_type"><tt class="computeroutput"><span class="identifier">syntax_option_type</span></tt></a>
will always have exactly one of the elements <tt class="computeroutput"><span class="identifier">normal</span></tt>,
<tt class="computeroutput"><span class="identifier">basic</span></tt>, <tt class="computeroutput"><span class="identifier">extended</span></tt>,
<tt class="computeroutput"><span class="identifier">awk</span></tt>, <tt class="computeroutput"><span class="identifier">grep</span></tt>,
<tt class="computeroutput"><span class="identifier">egrep</span></tt>, <tt class="computeroutput"><span class="identifier">sed</span></tt>,
<tt class="computeroutput"><span class="identifier">literal</span></tt> or <tt class="computeroutput"><span class="identifier">perl</span></tt> set.
has the effects listed in the table below, a valid value of type <a href="../syntax_option_type.html" title="syntax_option_type"><code class="computeroutput"><span class="identifier">syntax_option_type</span></code></a>
will always have exactly one of the elements <code class="computeroutput"><span class="identifier">normal</span></code>,
<code class="computeroutput"><span class="identifier">basic</span></code>, <code class="computeroutput"><span class="identifier">extended</span></code>,
<code class="computeroutput"><span class="identifier">awk</span></code>, <code class="computeroutput"><span class="identifier">grep</span></code>,
<code class="computeroutput"><span class="identifier">egrep</span></code>, <code class="computeroutput"><span class="identifier">sed</span></code>,
<code class="computeroutput"><span class="identifier">literal</span></code> or <code class="computeroutput"><span class="identifier">perl</span></code> set.
</p>
<p>
Note that for convenience all the constants listed here are duplicated
within the scope of class template <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a>, so you can use any
within the scope of class template <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>, so you can use any
of:
</p>
<pre class="programlisting">
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">constant_name</span>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">constant_name</span>
</pre>
<p>
or
</p>
<pre class="programlisting">
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">constant_name</span>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">constant_name</span>
</pre>
<p>
or
</p>
<pre class="programlisting">
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">wregex</span><span class="special">::</span><span class="identifier">constant_name</span>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">wregex</span><span class="special">::</span><span class="identifier">constant_name</span>
</pre>
<p>
in an interchangeable manner.
@ -66,10 +60,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,16 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
Options for Perl Regular Expressions</title>
<title>Options for Perl Regular Expressions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../syntax_option_type.html" title=" syntax_option_type">
<link rel="prev" href="syntax_option_type_overview.html" title="
Overview of syntax_option_type">
<link rel="next" href="syntax_option_type_extended.html" title="
Options for POSIX Extended Regular Expressions">
<link rel="up" href="../syntax_option_type.html" title="syntax_option_type">
<link rel="prev" href="syntax_option_type_overview.html" title="Overview of syntax_option_type">
<link rel="next" href="syntax_option_type_extended.html" title="Options for POSIX Extended Regular Expressions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -27,9 +24,9 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_perl"></a><a href="syntax_option_type_perl.html" title="
Options for Perl Regular Expressions">
Options for Perl Regular Expressions</a></h4></div></div></div>
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_perl"></a><a href="syntax_option_type_perl.html" title="Options for Perl Regular Expressions">
Options for Perl Regular Expressions</a>
</h4></div></div></div>
<p>
One of the following must always be set for perl regular expressions:
</p>
@ -76,12 +73,11 @@
part 10, RegExp (Regular Expression) Objects (FWD.1).
</p>
<p>
This is functionally identical to the <a href="../../syntax/perl_syntax.html" title=" Perl Regular Expression
Syntax">Perl
This is functionally identical to the <a href="../../syntax/perl_syntax.html" title="Perl Regular Expression Syntax">Perl
regular expression syntax</a>.
</p>
<p>
Boost.Regex also recognizes all of the perl-compatible <tt class="computeroutput"><span class="special">(?...)</span></tt> extensions in this mode.
Boost.Regex also recognizes all of the perl-compatible <code class="computeroutput"><span class="special">(?...)</span></code> extensions in this mode.
</p>
</td>
</tr>
@ -215,7 +211,7 @@
<p>
Specifies that when a regular expression is matched against a character
container sequence, then no sub-expression matches are to be stored
in the supplied <a href="../match_results.html" title=" match_results"><tt class="computeroutput"><span class="identifier">match_results</span></tt></a> structure.
in the supplied <a href="../match_results.html" title="match_results"><code class="computeroutput"><span class="identifier">match_results</span></code></a> structure.
</p>
</td>
</tr>
@ -253,7 +249,7 @@
</td>
<td>
<p>
Specifies that character ranges of the form <tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">b</span><span class="special">]</span></tt>
Specifies that character ranges of the form <code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">b</span><span class="special">]</span></code>
should be locale sensitive.
</p>
</td>
@ -290,7 +286,7 @@
</td>
<td>
<p>
Prevents <a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a> from throwing
Prevents <a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> from throwing
an exception when an invalid expression is encountered.
</p>
</td>
@ -329,9 +325,9 @@
<td>
<p>
Normally whether Boost.Regex will match "." against a
newline character is determined by the match flag <tt class="computeroutput"><span class="identifier">match_dot_not_newline</span></tt>. Specifying
this flag is equivalent to prefixing the expression with <tt class="computeroutput"><span class="special">(?-</span><span class="identifier">s</span><span class="special">)</span></tt> and therefore causes "."
not to match a newline character regardless of whether <tt class="computeroutput"><span class="identifier">match_not_dot_newline</span></tt> is set
newline character is determined by the match flag <code class="computeroutput"><span class="identifier">match_dot_not_newline</span></code>. Specifying
this flag is equivalent to prefixing the expression with <code class="computeroutput"><span class="special">(?-</span><span class="identifier">s</span><span class="special">)</span></code> and therefore causes "."
not to match a newline character regardless of whether <code class="computeroutput"><span class="identifier">match_not_dot_newline</span></code> is set
in the match flags.
</p>
</td>
@ -350,9 +346,9 @@
<td>
<p>
Normally whether Boost.Regex will match "." against a
newline character is determined by the match flag <tt class="computeroutput"><span class="identifier">match_dot_not_newline</span></tt>. Specifying
this flag is equivalent to prefixing the expression with <tt class="computeroutput"><span class="special">(?</span><span class="identifier">s</span><span class="special">)</span></tt> and therefore causes "."
to match a newline character regardless of whether <tt class="computeroutput"><span class="identifier">match_not_dot_newline</span></tt> is set
newline character is determined by the match flag <code class="computeroutput"><span class="identifier">match_dot_not_newline</span></code>. Specifying
this flag is equivalent to prefixing the expression with <code class="computeroutput"><span class="special">(?</span><span class="identifier">s</span><span class="special">)</span></code> and therefore causes "."
to match a newline character regardless of whether <code class="computeroutput"><span class="identifier">match_not_dot_newline</span></code> is set
in the match flags.
</p>
</td>
@ -380,10 +376,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">

View File

@ -1,15 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
syntax_option_type Synopsis</title>
<title>syntax_option_type Synopsis</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
<link rel="start" href="../../../index.html" title="Boost.Regex">
<link rel="up" href="../syntax_option_type.html" title=" syntax_option_type">
<link rel="prev" href="../syntax_option_type.html" title=" syntax_option_type">
<link rel="next" href="syntax_option_type_overview.html" title="
Overview of syntax_option_type">
<link rel="up" href="../syntax_option_type.html" title="syntax_option_type">
<link rel="prev" href="../syntax_option_type.html" title="syntax_option_type">
<link rel="next" href="syntax_option_type_overview.html" title="Overview of syntax_option_type">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@ -26,18 +24,17 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_synopsis"></a><a href="syntax_option_type_synopsis.html" title="
syntax_option_type Synopsis">
syntax_option_type Synopsis</a></h4></div></div></div>
<a name="boost_regex.ref.syntax_option_type.syntax_option_type_synopsis"></a><a href="syntax_option_type_synopsis.html" title="syntax_option_type Synopsis">
syntax_option_type Synopsis</a>
</h4></div></div></div>
<p>
Type <a href="../syntax_option_type.html" title=" syntax_option_type"><tt class="computeroutput"><span class="identifier">syntax_option_type</span></tt></a>
Type <a href="../syntax_option_type.html" title="syntax_option_type"><code class="computeroutput"><span class="identifier">syntax_option_type</span></code></a>
is an implementation specific bitmask type that controls how a regular
expression string is to be interpreted. For convenience note that all the
constants listed here, are also duplicated within the scope of class template
<a href="../basic_regex.html" title=" basic_regex"><tt class="computeroutput"><span class="identifier">basic_regex</span></tt></a>.
<a href="../basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>.
</p>
<pre class="programlisting">
<span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">regex_constants</span><span class="special">{</span>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">regex_constants</span><span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">implementation</span><span class="special">-</span><span class="identifier">specific</span><span class="special">-</span><span class="identifier">bitmask</span><span class="special">-</span><span class="identifier">type</span> <span class="identifier">syntax_option_type</span><span class="special">;</span>
@ -65,10 +62,11 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer"><small>Copyright <20> 2007 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright <20> 1998 -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>
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">