forked from boostorg/regex
Compare commits
11 Commits
sandbox-br
...
svn-branch
Author | SHA1 | Date | |
---|---|---|---|
a606f1d874 | |||
944a01f39e | |||
d279b2c0a1 | |||
aa16fa7fa1 | |||
9d18ba1151 | |||
f310162a85 | |||
55d979060c | |||
30941e330d | |||
7b10b5dac5 | |||
ccf465daac | |||
6f7f8a6886 |
@ -10,10 +10,13 @@ project boost/regex
|
||||
#
|
||||
# ICU configuration:
|
||||
#
|
||||
local ICU_PATH = [ modules.peek : ICU_PATH ] ;
|
||||
if [ modules.peek : ICU_PATH ]
|
||||
{
|
||||
ICU_PATH = [ modules.peek : ICU_PATH ] ;
|
||||
}
|
||||
|
||||
rule check-icu-config ( )
|
||||
{
|
||||
local ICU_PATH = [ modules.peek : ICU_PATH ] ;
|
||||
local HAVE_ICU = [ modules.peek : HAVE_ICU ] ;
|
||||
local ICU_LINK = [ modules.peek : ICU_LINK ] ;
|
||||
|
||||
@ -59,8 +62,8 @@ rule check-icu-config ( )
|
||||
}
|
||||
else
|
||||
{
|
||||
ECHO WARNING: ICU shared common library not found in path. ;
|
||||
ECHO HINT: If the regex library fails to link then try again ;
|
||||
ECHO warning: ICU shared common library not found in path. ;
|
||||
ECHO hint: If the regex library fails to link then try again ;
|
||||
ECHO with the environment variable ICU_LINK set to contain ;
|
||||
ECHO the linker options required to link to ICU. ;
|
||||
ECHO Defaulting to look for libicuuc ... ;
|
||||
@ -91,8 +94,8 @@ rule check-icu-config ( )
|
||||
}
|
||||
else
|
||||
{
|
||||
ECHO WARNING: ICU shared i18n library not found in path. ;
|
||||
ECHO HINT: If the regex library fails to link then try again ;
|
||||
ECHO warning: ICU shared i18n library not found in path. ;
|
||||
ECHO hint: If the regex library fails to link then try again ;
|
||||
ECHO with the environment variable ICU_LINK set to contain ;
|
||||
ECHO the linker options required to link to ICU. ;
|
||||
ECHO Defaulting to look for libicui18n ... ;
|
||||
@ -127,15 +130,15 @@ rule check-icu-config ( )
|
||||
echo $(os) ;
|
||||
if $(os) != "DARWIN"
|
||||
{
|
||||
ECHO WARNING: ICU shared data library not found in path. ;
|
||||
ECHO HINT: If the regex library fails to link then try again ;
|
||||
ECHO warning: ICU shared data library not found in path. ;
|
||||
ECHO hint: If the regex library fails to link then try again ;
|
||||
ECHO with the environment variable ICU_LINK set to contain ;
|
||||
ECHO the linker options required to link to ICU. ;
|
||||
}
|
||||
else
|
||||
{
|
||||
ECHO WARNING: ICU shared data library not found in path. ;
|
||||
ECHO HINT: If the regex library fails to link then try again ;
|
||||
ECHO warning: ICU shared data library not found in path. ;
|
||||
ECHO hint: If the regex library fails to link then try again ;
|
||||
ECHO with the environment variable ICU_LINK set to contain ;
|
||||
ECHO the linker options required to link to ICU. ;
|
||||
ECHO Defaulting to look for libicudata ... ;
|
||||
@ -160,14 +163,14 @@ rule check-icu-config ( )
|
||||
else
|
||||
{
|
||||
message icu_config
|
||||
: "Building Boost.Regex with the optional Unicode/ICU support disabled."
|
||||
: "Note: Please refer to the Boost.Regex documentation for more information"
|
||||
: "Note: this is a strictly optional feature." ;
|
||||
: "warning: Building Boost.Regex with the optional Unicode/ICU support disabled."
|
||||
: "note: Please refer to the Boost.Regex documentation for more information"
|
||||
: "note: this is a strictly optional feature." ;
|
||||
|
||||
if $(ICU_PATH)
|
||||
{
|
||||
message icu_config2
|
||||
: WARNING! ICU configuration failed
|
||||
: warning! ICU configuration failed
|
||||
: " Couldn't find utypes.h in " $(ICU_PATH:J=" ")/include/unicode ;
|
||||
}
|
||||
else
|
||||
|
@ -33,6 +33,15 @@ order to prevent ambiguities.
|
||||
For example, the format string "(?1foo:bar)" will replace each match found with "foo" if
|
||||
the sub-expression $1 was matched, and with "bar" otherwise.
|
||||
|
||||
For sub-expressions with an index greater than 9, or for access to named sub-expressions use:
|
||||
|
||||
?{INDEX}true-expression:false-expression
|
||||
|
||||
or
|
||||
|
||||
?{NAME}true-expression:false-expression
|
||||
|
||||
|
||||
[h4 Placeholder Sequences]
|
||||
|
||||
Placeholder sequences specify that some part of what matched the regular expression
|
||||
@ -41,12 +50,24 @@ should be sent to output as follows:
|
||||
[table
|
||||
[[Placeholder][Meaning]]
|
||||
[[$&][Outputs what matched the whole expression.]]
|
||||
[[$`][Outputs the text between the end of the last match found (or the
|
||||
start of the text if no previous match was found), and the start
|
||||
of the current match.]]
|
||||
[[$MATCH][As $&]]
|
||||
[[${^MATCH}][As $&]]
|
||||
[[$\`][Outputs the text between the end of the last match found (or the
|
||||
start of the text if no previous match was found), and the start
|
||||
of the current match.]]
|
||||
[[$PREMATCH][As $\`]]
|
||||
[[${^PREMATCH}][As $\`]]
|
||||
[[$'][Outputs all the text following the end of the current match.]]
|
||||
[[$POSTMATCH][As $']]
|
||||
[[${^POSTMATCH}][As $']]
|
||||
[[$+][Outputs what matched the last marked sub-expression in the regular expression.]]
|
||||
[[$LAST_PAREN_MATCH][As $+]]
|
||||
[[$LAST_SUBMATCH_RESULT][Outputs what matched the last sub-expression to be actually matched.]]
|
||||
[[$^N][As $LAST_SUBMATCH_RESULT]]
|
||||
[[$$][Outputs a literal '$']]
|
||||
[[$n][Outputs what matched the n'th sub-expression.]]
|
||||
[[${n}][Outputs what matched the n'th sub-expression.]]
|
||||
[[$+{NAME}][Outputs whatever matched the sub-expression named "NAME".]]
|
||||
]
|
||||
|
||||
Any $-placeholder sequence not listed above, results in '$' being treated as a literal.
|
||||
|
@ -17,13 +17,24 @@ should be sent to output as follows:
|
||||
[table
|
||||
[[Placeholder][Meaning]]
|
||||
[[$&][Outputs what matched the whole expression.]]
|
||||
[[$`][Outputs the text between the end of the last match found (or the
|
||||
[[$MATCH][As $&]]
|
||||
[[${^MATCH}][As $&]]
|
||||
[[$\`][Outputs the text between the end of the last match found (or the
|
||||
start of the text if no previous match was found), and the start
|
||||
of the current match.]]
|
||||
[[$PREMATCH][As $\`]]
|
||||
[[${^PREMATCH}][As $\`]]
|
||||
[[$'][Outputs all the text following the end of the current match.]]
|
||||
[[$POSTMATCH][As $']]
|
||||
[[${^POSTMATCH}][As $']]
|
||||
[[$+][Outputs what matched the last marked sub-expression in the regular expression.]]
|
||||
[[$LAST_PAREN_MATCH][As $+]]
|
||||
[[$LAST_SUBMATCH_RESULT][Outputs what matched the last sub-expression to be actually matched.]]
|
||||
[[$^N][As $LAST_SUBMATCH_RESULT]]
|
||||
[[$$][Outputs a literal '$']]
|
||||
[[$n][Outputs what matched the n'th sub-expression.]]
|
||||
[[${n}][Outputs what matched the n'th sub-expression.]]
|
||||
[[$+{NAME}][Outputs whatever matched the sub-expression named "NAME".]]
|
||||
]
|
||||
|
||||
Any $-placeholder sequence not listed above, results in '$' being treated
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Background Information</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="ref/deprecated_interfaces/old_regex.html" title="High Level Class RegEx (Deprecated)">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Acknowledgements</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="redist.html" title="Redistributables">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Test and Example Programs</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="thread_safety.html" title="Thread Safety">
|
||||
@ -28,7 +28,7 @@
|
||||
Example Programs</a>
|
||||
</h3></div></div></div>
|
||||
<a name="boost_regex.background_information.examples.test_programs"></a><h5>
|
||||
<a name="id685550"></a>
|
||||
<a name="id803018"></a>
|
||||
<a class="link" href="examples.html#boost_regex.background_information.examples.test_programs">Test
|
||||
Programs</a>
|
||||
</h5>
|
||||
@ -107,7 +107,7 @@
|
||||
Files: <a href="../../../../test/captures/captures_test.cpp" target="_top">captures_test.cpp</a>.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.examples.example_programs"></a><h5>
|
||||
<a name="id685938"></a>
|
||||
<a name="id803321"></a>
|
||||
<a class="link" href="examples.html#boost_regex.background_information.examples.example_programs">Example
|
||||
programs</a>
|
||||
</h5>
|
||||
@ -133,7 +133,7 @@
|
||||
Files: <a href="../../../../example/timer/regex_timer.cpp" target="_top">regex_timer.cpp</a>.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.examples.code_snippets"></a><h5>
|
||||
<a name="id686019"></a>
|
||||
<a name="id803380"></a>
|
||||
<a class="link" href="examples.html#boost_regex.background_information.examples.code_snippets">Code
|
||||
snippets</a>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>FAQ</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="futher.html" title="References and Further Information">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>References and Further Information</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="examples.html" title="Test and Example Programs">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Headers</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="../background_information.html" title="Background Information">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>History</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="acknowledgements.html" title="Acknowledgements">
|
||||
@ -26,7 +26,7 @@
|
||||
<a name="boost_regex.background_information.history"></a><a class="link" href="history.html" title="History"> History</a>
|
||||
</h3></div></div></div>
|
||||
<a name="boost_regex.background_information.history.boost_1_38"></a><h5>
|
||||
<a name="id688173"></a>
|
||||
<a name="id805061"></a>
|
||||
<a class="link" href="history.html#boost_regex.background_information.history.boost_1_38">Boost
|
||||
1.38</a>
|
||||
</h5>
|
||||
@ -36,7 +36,7 @@
|
||||
empty alternatives are now allowed when using the Perl regular expression
|
||||
syntax. This change has been added for Perl compatibility, when the new
|
||||
<a class="link" href="../ref/syntax_option_type.html" title="syntax_option_type"><code class="computeroutput"><span class="identifier">syntax_option_type</span></code></a><span class="emphasis"><em>no_empty_expressions</em></span> is set then the old behaviour
|
||||
is preserved and empty expressions are prohibited.
|
||||
is preserved and empty expressions are prohibited. This is issue <a href="https://svn.boost.org/trac/boost/ticket/1081" target="_top">#1081</a>.
|
||||
</li>
|
||||
<li>
|
||||
Added support for Perl style ${n} expressions in format strings (issue
|
||||
@ -53,7 +53,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.background_information.history.boost_1_34"></a><h5>
|
||||
<a name="id688292"></a>
|
||||
<a name="id805139"></a>
|
||||
<a class="link" href="history.html#boost_regex.background_information.history.boost_1_34">Boost
|
||||
1.34</a>
|
||||
</h5>
|
||||
@ -76,7 +76,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.background_information.history.boost_1_33_1"></a><h5>
|
||||
<a name="id688343"></a>
|
||||
<a name="id805170"></a>
|
||||
<a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_1">Boost
|
||||
1.33.1</a>
|
||||
</h5>
|
||||
@ -146,7 +146,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.background_information.history.boost_1_33_0"></a><h5>
|
||||
<a name="id688472"></a>
|
||||
<a name="id805249"></a>
|
||||
<a class="link" href="history.html#boost_regex.background_information.history.boost_1_33_0">Boost
|
||||
1.33.0</a>
|
||||
</h5>
|
||||
@ -201,7 +201,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.background_information.history.boost_1_32_1"></a><h5>
|
||||
<a name="id688569"></a>
|
||||
<a name="id805308"></a>
|
||||
<a class="link" href="history.html#boost_regex.background_information.history.boost_1_32_1">Boost
|
||||
1.32.1</a>
|
||||
</h5>
|
||||
@ -209,7 +209,7 @@
|
||||
Fixed bug in partial matches of bounded repeats of '.'.
|
||||
</li></ul></div>
|
||||
<a name="boost_regex.background_information.history.boost_1_31_0"></a><h5>
|
||||
<a name="id688603"></a>
|
||||
<a name="id805328"></a>
|
||||
<a class="link" href="history.html#boost_regex.background_information.history.boost_1_31_0">Boost
|
||||
1.31.0</a>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Localization</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="headers.html" title="Headers">
|
||||
@ -58,7 +58,7 @@
|
||||
There are three separate localization mechanisms supported by Boost.Regex:
|
||||
</p>
|
||||
<a name="boost_regex.background_information.locale.win32_localization_model_"></a><h5>
|
||||
<a name="id682058"></a>
|
||||
<a name="id798806"></a>
|
||||
<a class="link" href="locale.html#boost_regex.background_information.locale.win32_localization_model_">Win32
|
||||
localization model.</a>
|
||||
</h5>
|
||||
@ -90,7 +90,7 @@
|
||||
are treated as "unknown" graphic characters.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.locale.c_localization_model_"></a><h5>
|
||||
<a name="id682296"></a>
|
||||
<a name="id798960"></a>
|
||||
<a class="link" href="locale.html#boost_regex.background_information.locale.c_localization_model_">C
|
||||
localization model.</a>
|
||||
</h5>
|
||||
@ -114,7 +114,7 @@
|
||||
libraries including version 1 of this library.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.locale.c___localization_model_"></a><h5>
|
||||
<a name="id682409"></a>
|
||||
<a name="id799029"></a>
|
||||
<a class="link" href="locale.html#boost_regex.background_information.locale.c___localization_model_">C++
|
||||
localization model.</a>
|
||||
</h5>
|
||||
@ -151,7 +151,7 @@
|
||||
in your code. The best way to ensure this is to add the #define to <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.locale.providing_a_message_catalogue"></a><h5>
|
||||
<a name="id682868"></a>
|
||||
<a name="id799330"></a>
|
||||
<a class="link" href="locale.html#boost_regex.background_information.locale.providing_a_message_catalogue">Providing
|
||||
a message catalogue</a>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Performance</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="faq.html" title="FAQ">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Redistributables</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="standards.html" title="Standards Conformance">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Standards Conformance</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="performance.html" title="Performance">
|
||||
@ -28,7 +28,7 @@
|
||||
Conformance</a>
|
||||
</h3></div></div></div>
|
||||
<a name="boost_regex.background_information.standards.c__"></a><h5>
|
||||
<a name="id686998"></a>
|
||||
<a name="id804009"></a>
|
||||
<a class="link" href="standards.html#boost_regex.background_information.standards.c__">C++</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -36,7 +36,7 @@
|
||||
Report on C++ Library Extensions</a>.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.standards.ecmascript___javascript"></a><h5>
|
||||
<a name="id687036"></a>
|
||||
<a name="id804031"></a>
|
||||
<a class="link" href="standards.html#boost_regex.background_information.standards.ecmascript___javascript">ECMAScript
|
||||
/ JavaScript</a>
|
||||
</h5>
|
||||
@ -49,7 +49,7 @@
|
||||
rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.standards.perl"></a><h5>
|
||||
<a name="id687075"></a>
|
||||
<a name="id804051"></a>
|
||||
<a class="link" href="standards.html#boost_regex.background_information.standards.perl">Perl</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -62,7 +62,7 @@
|
||||
(??{code}) Not implementable in a compiled strongly typed language.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.standards.posix"></a><h5>
|
||||
<a name="id687114"></a>
|
||||
<a name="id804075"></a>
|
||||
<a class="link" href="standards.html#boost_regex.background_information.standards.posix">POSIX</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -82,7 +82,7 @@
|
||||
a custom traits class.
|
||||
</p>
|
||||
<a name="boost_regex.background_information.standards.unicode"></a><h5>
|
||||
<a name="id687161"></a>
|
||||
<a name="id804099"></a>
|
||||
<a class="link" href="standards.html#boost_regex.background_information.standards.unicode">Unicode</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Thread Safety</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../background_information.html" title="Background Information">
|
||||
<link rel="prev" href="locale.html" title="Localization">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Understanding Marked Sub-Expressions and Captures</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="unicode.html" title="Unicode and Boost.Regex">
|
||||
@ -35,7 +35,7 @@
|
||||
accessed.
|
||||
</p>
|
||||
<a name="boost_regex.captures.marked_sub_expressions"></a><h5>
|
||||
<a name="id530356"></a>
|
||||
<a name="id646833"></a>
|
||||
<a class="link" href="captures.html#boost_regex.captures.marked_sub_expressions">Marked sub-expressions</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -218,7 +218,7 @@
|
||||
output stream.
|
||||
</p>
|
||||
<a name="boost_regex.captures.unmatched_sub_expressions"></a><h5>
|
||||
<a name="id530979"></a>
|
||||
<a name="id647289"></a>
|
||||
<a class="link" href="captures.html#boost_regex.captures.unmatched_sub_expressions">Unmatched Sub-Expressions</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -231,7 +231,7 @@
|
||||
you can determine which sub-expressions matched by accessing the <code class="computeroutput"><span class="identifier">sub_match</span><span class="special">::</span><span class="identifier">matched</span></code> data member.
|
||||
</p>
|
||||
<a name="boost_regex.captures.repeated_captures"></a><h5>
|
||||
<a name="id531042"></a>
|
||||
<a name="id647329"></a>
|
||||
<a class="link" href="captures.html#boost_regex.captures.repeated_captures">Repeated Captures</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Configuration</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="../index.html" title="Boost.Regex">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Algorithm Selection</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../configuration.html" title="Configuration">
|
||||
<link rel="prev" href="linkage.html" title="Linkage Options">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Compiler Setup</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../configuration.html" title="Configuration">
|
||||
<link rel="prev" href="../configuration.html" title="Configuration">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Linkage Options</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../configuration.html" title="Configuration">
|
||||
<link rel="prev" href="locale.html" title="Locale and traits class selection">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Locale and traits class selection</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../configuration.html" title="Configuration">
|
||||
<link rel="prev" href="compiler.html" title="Compiler Setup">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Algorithm Tuning</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../configuration.html" title="Configuration">
|
||||
<link rel="prev" href="algorithm.html" title="Algorithm Selection">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Search and Replace Format String Syntax</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="syntax/leftmost_longest_rule.html" title="The Leftmost Longest Rule">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Boost-Extended Format String Syntax</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../format.html" title="Search and Replace Format String Syntax">
|
||||
<link rel="prev" href="perl_format.html" title="Perl Format String Syntax">
|
||||
@ -32,7 +32,7 @@
|
||||
'$', '\', '(', ')', '?', and ':'.
|
||||
</p>
|
||||
<a name="boost_regex.format.boost_format_syntax.grouping"></a><h5>
|
||||
<a name="id552944"></a>
|
||||
<a name="id667534"></a>
|
||||
<a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.grouping">Grouping</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -40,7 +40,7 @@
|
||||
you want a to output literal parenthesis.
|
||||
</p>
|
||||
<a name="boost_regex.format.boost_format_syntax.conditionals"></a><h5>
|
||||
<a name="id552974"></a>
|
||||
<a name="id667551"></a>
|
||||
<a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.conditionals">Conditionals</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -65,8 +65,21 @@
|
||||
match found with "foo" if the sub-expression $1 was matched, and
|
||||
with "bar" otherwise.
|
||||
</p>
|
||||
<p>
|
||||
For sub-expressions with an index greater than 9, or for access to named
|
||||
sub-expressions use:
|
||||
</p>
|
||||
<p>
|
||||
?{INDEX}true-expression:false-expression
|
||||
</p>
|
||||
<p>
|
||||
or
|
||||
</p>
|
||||
<p>
|
||||
?{NAME}true-expression:false-expression
|
||||
</p>
|
||||
<a name="boost_regex.format.boost_format_syntax.placeholder_sequences"></a><h5>
|
||||
<a name="id553032"></a>
|
||||
<a name="id667604"></a>
|
||||
<a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.placeholder_sequences">Placeholder
|
||||
Sequences</a>
|
||||
</h5>
|
||||
@ -105,6 +118,30 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$MATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $&
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
${^MATCH}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $&
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$`
|
||||
@ -119,6 +156,30 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$PREMATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $`
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
${^PREMATCH}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $`
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$'
|
||||
@ -131,6 +192,79 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$POSTMATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $'
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
${^POSTMATCH}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $'
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$+
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Outputs what matched the last marked sub-expression in the regular
|
||||
expression.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$LAST_PAREN_MATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $+
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$LAST_SUBMATCH_RESULT
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Outputs what matched the last sub-expression to be actually matched.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$^N
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $LAST_SUBMATCH_RESULT
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$$
|
||||
@ -154,6 +288,30 @@
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
${n}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Outputs what matched the n'th sub-expression.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$+{NAME}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Outputs whatever matched the sub-expression named "NAME".
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<p>
|
||||
@ -161,7 +319,7 @@
|
||||
as a literal.
|
||||
</p>
|
||||
<a name="boost_regex.format.boost_format_syntax.escape_sequences"></a><h5>
|
||||
<a name="id553203"></a>
|
||||
<a name="id667947"></a>
|
||||
<a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.escape_sequences">Escape
|
||||
Sequences</a>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Perl Format String Syntax</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../format.html" title="Search and Replace Format String Syntax">
|
||||
<link rel="prev" href="sed_format.html" title="Sed Format String Syntax">
|
||||
@ -65,6 +65,30 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$MATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $&
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
${^MATCH}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $&
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$`
|
||||
@ -79,6 +103,30 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$PREMATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $`
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
${^PREMATCH}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $`
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$'
|
||||
@ -91,6 +139,79 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$POSTMATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $'
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
${^POSTMATCH}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $'
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$+
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Outputs what matched the last marked sub-expression in the regular
|
||||
expression.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$LAST_PAREN_MATCH
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $+
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$LAST_SUBMATCH_RESULT
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Outputs what matched the last sub-expression to be actually matched.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$^N
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
As $LAST_SUBMATCH_RESULT
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$$
|
||||
@ -126,6 +247,18 @@
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
$+{NAME}
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Outputs whatever matched the sub-expression named "NAME".
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Sed Format String Syntax</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../format.html" title="Search and Replace Format String Syntax">
|
||||
<link rel="prev" href="../format.html" title="Search and Replace Format String Syntax">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Building and Installing the Library</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="configuration/tuning.html" title="Algorithm Tuning">
|
||||
@ -49,7 +49,7 @@
|
||||
file before you can use it, instructions for specific platforms are as follows:
|
||||
</p>
|
||||
<a name="boost_regex.install.building_with_bjam"></a><h5>
|
||||
<a name="id473594"></a>
|
||||
<a name="id637933"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.building_with_bjam">Building with bjam</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -58,7 +58,7 @@
|
||||
started guide</a> for more information.
|
||||
</p>
|
||||
<a name="boost_regex.install.building_with_unicode_and_icu_support"></a><h5>
|
||||
<a name="id473628"></a>
|
||||
<a name="id637957"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.building_with_unicode_and_icu_support">Building
|
||||
With Unicode and ICU Support</a>
|
||||
</h5>
|
||||
@ -96,11 +96,11 @@
|
||||
ICU you are using is binary compatible with the toolset you use to build Boost.
|
||||
</p>
|
||||
<a name="boost_regex.install.building_via_makefiles"></a><h5>
|
||||
<a name="id473176"></a>
|
||||
<a name="id638076"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.building_via_makefiles">Building via makefiles</a>
|
||||
</h5>
|
||||
<a name="boost_regex.install.borland_c___builder_"></a><h6>
|
||||
<a name="id473199"></a>
|
||||
<a name="id638089"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.borland_c___builder_">Borland C++ Builder:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
@ -166,7 +166,7 @@
|
||||
a lot in compile times!
|
||||
</p>
|
||||
<a name="boost_regex.install.microsoft_visual_c___6__7__7_1_and_8"></a><h5>
|
||||
<a name="id527567"></a>
|
||||
<a name="id638328"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.microsoft_visual_c___6__7__7_1_and_8">Microsoft
|
||||
Visual C++ 6, 7, 7.1 and 8</a>
|
||||
</h5>
|
||||
@ -253,7 +253,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.install.gcc_2_95_and_later_"></a><h6>
|
||||
<a name="id527884"></a>
|
||||
<a name="id645234"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.gcc_2_95_and_later_">GCC(2.95 and later)</a>
|
||||
</h6>
|
||||
<p>
|
||||
@ -302,7 +302,7 @@
|
||||
see the <a href="../../../../config/index.html" target="_top">config library documentation</a>.
|
||||
</p>
|
||||
<a name="boost_regex.install.sun_workshop_6_1"></a><h6>
|
||||
<a name="id528091"></a>
|
||||
<a name="id645360"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.sun_workshop_6_1">Sun Workshop 6.1</a>
|
||||
</h6>
|
||||
<p>
|
||||
@ -347,7 +347,7 @@
|
||||
will build v9 variants of the regex library named libboost_regex_v9.a etc.
|
||||
</p>
|
||||
<a name="boost_regex.install.makefiles_for_other_compilers"></a><h6>
|
||||
<a name="id528312"></a>
|
||||
<a name="id645504"></a>
|
||||
<a class="link" href="install.html#boost_regex.install.makefiles_for_other_compilers">Makefiles
|
||||
for Other compilers</a>
|
||||
</h6>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Introduction and Overview</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="install.html" title="Building and Installing the Library">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Partial Matches</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="captures.html" title="Understanding Marked Sub-Expressions and Captures">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Reference</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="format/boost_format_syntax.html" title="Boost-Extended Format String Syntax">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>bad_expression</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -27,7 +27,7 @@
|
||||
<a name="boost_regex.ref.bad_expression"></a><a class="link" 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="id633887"></a>
|
||||
<a name="id751917"></a>
|
||||
<a class="link" href="bad_expression.html#boost_regex.ref.bad_expression.synopsis">Synopsis</a>
|
||||
</h5>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</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">></span>
|
||||
@ -54,7 +54,7 @@
|
||||
<span class="special">}</span> <span class="comment">// namespace boost
|
||||
</span></pre>
|
||||
<a name="boost_regex.ref.bad_expression.description"></a><h5>
|
||||
<a name="id634390"></a>
|
||||
<a name="id752278"></a>
|
||||
<a class="link" href="bad_expression.html#boost_regex.ref.bad_expression.description">Description</a>
|
||||
</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">&</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>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>basic_regex</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="../ref.html" title="Reference">
|
||||
@ -27,7 +27,7 @@
|
||||
<a name="boost_regex.ref.basic_regex"></a><a class="link" href="basic_regex.html" title="basic_regex"> basic_regex</a>
|
||||
</h3></div></div></div>
|
||||
<a name="boost_regex.ref.basic_regex.synopsis"></a><h5>
|
||||
<a name="id553616"></a>
|
||||
<a name="id668290"></a>
|
||||
<a class="link" href="basic_regex.html#boost_regex.ref.basic_regex.synopsis">Synopsis</a>
|
||||
</h5>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
@ -244,7 +244,7 @@
|
||||
<span class="special">}</span> <span class="comment">// namespace boost
|
||||
</span></pre>
|
||||
<a name="boost_regex.ref.basic_regex.description"></a><h5>
|
||||
<a name="id559592"></a>
|
||||
<a name="id673834"></a>
|
||||
<a class="link" href="basic_regex.html#boost_regex.ref.basic_regex.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -327,7 +327,7 @@
|
||||
<code class="computeroutput"><span class="identifier">basic_regex</span></code>.
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id561527"></a><p class="title"><b>Table<EFBFBD>1.<2E>basic_regex default construction postconditions</b></p>
|
||||
<a name="id675198"></a><p class="title"><b>Table<EFBFBD>1.<2E>basic_regex default construction postconditions</b></p>
|
||||
<div class="table-contents"><table class="table" summary="basic_regex default construction postconditions">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -407,7 +407,7 @@
|
||||
flags</a> specified in <span class="emphasis"><em>f</em></span>.
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id561926"></a><p class="title"><b>Table<EFBFBD>2.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<a name="id676043"></a><p class="title"><b>Table<EFBFBD>2.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -512,7 +512,7 @@
|
||||
specified in <span class="emphasis"><em>f</em></span>.
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id562472"></a><p class="title"><b>Table<EFBFBD>3.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<a name="id676455"></a><p class="title"><b>Table<EFBFBD>3.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -616,7 +616,7 @@
|
||||
according the option flags specified in <span class="emphasis"><em>f</em></span>.
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id563006"></a><p class="title"><b>Table<EFBFBD>4.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<a name="id676860"></a><p class="title"><b>Table<EFBFBD>4.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -727,7 +727,7 @@
|
||||
flags</a> specified in <span class="emphasis"><em>f</em></span>.
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id563641"></a><p class="title"><b>Table<EFBFBD>5.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<a name="id677336"></a><p class="title"><b>Table<EFBFBD>5.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -829,7 +829,7 @@
|
||||
flags</a> specified in <span class="emphasis"><em>f</em></span>.
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id564115"></a><p class="title"><b>Table<EFBFBD>6.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<a name="id677695"></a><p class="title"><b>Table<EFBFBD>6.<2E>Postconditions for basic_regex construction</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
|
||||
<colgroup>
|
||||
<col>
|
||||
@ -1043,7 +1043,7 @@
|
||||
in <span class="emphasis"><em>f</em></span>.
|
||||
</p>
|
||||
<div class="table">
|
||||
<a name="id566191"></a><p class="title"><b>Table<EFBFBD>7.<2E>Postconditions for basic_regex::assign</b></p>
|
||||
<a name="id680375"></a><p class="title"><b>Table<EFBFBD>7.<2E>Postconditions for basic_regex::assign</b></p>
|
||||
<div class="table-contents"><table class="table" summary="Postconditions for basic_regex::assign">
|
||||
<colgroup>
|
||||
<col>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Concepts</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>charT Requirements</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../concepts.html" title="Concepts">
|
||||
<link rel="prev" href="../concepts.html" title="Concepts">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Iterator Requirements</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Traits Class Requirements</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../concepts.html" title="Concepts">
|
||||
<link rel="prev" href="charT_concept.html" title="charT Requirements">
|
||||
@ -34,7 +34,7 @@
|
||||
Boost-specific enhanced interface.
|
||||
</p>
|
||||
<a name="boost_regex.ref.concepts.traits_concept.minimal_requirements_"></a><h5>
|
||||
<a name="id661185"></a>
|
||||
<a name="id779263"></a>
|
||||
<a class="link" href="traits_concept.html#boost_regex.ref.concepts.traits_concept.minimal_requirements_">Minimal
|
||||
requirements.</a>
|
||||
</h5>
|
||||
@ -381,7 +381,7 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="boost_regex.ref.concepts.traits_concept.additional_optional_requirements"></a><h5>
|
||||
<a name="id661996"></a>
|
||||
<a name="id779878"></a>
|
||||
<a class="link" href="traits_concept.html#boost_regex.ref.concepts.traits_concept.additional_optional_requirements">Additional
|
||||
Optional Requirements</a>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="concepts/iterator_concepts.html" title="Iterator Requirements">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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)">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_format (Deprecated)</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -34,7 +34,7 @@
|
||||
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><h5>
|
||||
<a name="id662740"></a>
|
||||
<a name="id780400"></a>
|
||||
<a class="link" href="regex_format.html#boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format">Algorithm
|
||||
regex_format</a>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_grep (Deprecated)</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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)">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_split (deprecated)</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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)">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>error_type</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -27,7 +27,7 @@
|
||||
<a name="boost_regex.ref.error_type"></a><a class="link" 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="id640585"></a>
|
||||
<a name="id758596"></a>
|
||||
<a class="link" href="error_type.html#boost_regex.ref.error_type.synopsis">Synopsis</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -57,7 +57,7 @@
|
||||
</span><span class="special">}</span> <span class="comment">// namespace boost
|
||||
</span></pre>
|
||||
<a name="boost_regex.ref.error_type.description"></a><h5>
|
||||
<a name="id641149"></a>
|
||||
<a name="id759011"></a>
|
||||
<a class="link" href="error_type.html#boost_regex.ref.error_type.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>match_flag_type</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -69,7 +69,7 @@
|
||||
</span><span class="special">}</span> <span class="comment">// namespace boost
|
||||
</span></pre>
|
||||
<a name="boost_regex.ref.match_flag_type.description"></a><h5>
|
||||
<a name="id639820"></a>
|
||||
<a name="id758045"></a>
|
||||
<a class="link" href="match_flag_type.html#boost_regex.ref.match_flag_type.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>match_results</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="basic_regex.html" title="basic_regex">
|
||||
@ -27,7 +27,7 @@
|
||||
<a name="boost_regex.ref.match_results"></a><a class="link" 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="id569578"></a>
|
||||
<a name="id684548"></a>
|
||||
<a class="link" href="match_results.html#boost_regex.ref.match_results.synopsis">Synopsis</a>
|
||||
</h5>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
@ -98,9 +98,33 @@
|
||||
<span class="keyword">bool</span> <a class="link" href="match_results.html#boost_regex.match_results.empty">empty</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="comment">// element access:
|
||||
</span> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><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>
|
||||
<span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><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>
|
||||
<span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><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>
|
||||
<span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</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">A</span><span class="special">></span>
|
||||
<span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><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>
|
||||
<span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</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">A</span><span class="special">></span>
|
||||
<span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.prefix">prefix</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
|
||||
@ -142,7 +166,7 @@
|
||||
<span class="identifier">match_results</span><span class="special"><</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">>&</span> <span class="identifier">m2</span><span class="special">);</span>
|
||||
</pre>
|
||||
<a name="boost_regex.ref.match_results.description"></a><h5>
|
||||
<a name="id572482"></a>
|
||||
<a name="id689626"></a>
|
||||
<a class="link" href="match_results.html#boost_regex.ref.match_results.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -375,14 +399,39 @@
|
||||
<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>
|
||||
<span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
<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>
|
||||
<p>
|
||||
The overloads that accept a string refer to a named sub-expression <span class="emphasis"><em>n</em></span>.
|
||||
In the event that there is no such named sub-expression then returns an empty
|
||||
string.
|
||||
</p>
|
||||
<p>
|
||||
The template overloads of this function, allow the string and/or character
|
||||
type to be different from the character type of the underlying sequence and/or
|
||||
regular expression: in this case the characters will be widened to the underlying
|
||||
character type of the original regular expression. A compiler error will
|
||||
occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used
|
||||
as an argument, even when the underlying character type of the expression
|
||||
being matched may be something more exotic such as a Unicode character type.
|
||||
</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>
|
||||
<span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
<span class="bold"><strong>Effects</strong></span>: Returns the starting location of
|
||||
@ -391,17 +440,61 @@
|
||||
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>
|
||||
<p>
|
||||
The overloads that accept a string refer to a named sub-expression <span class="emphasis"><em>n</em></span>.
|
||||
In the event that there is no such named sub-expression then returns an empty
|
||||
string.
|
||||
</p>
|
||||
<p>
|
||||
The template overloads of this function, allow the string and/or character
|
||||
type to be different from the character type of the underlying sequence and/or
|
||||
regular expression: in this case the characters will be widened to the underlying
|
||||
character type of the original regular expression. A compiler error will
|
||||
occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used
|
||||
as an argument, even when the underlying character type of the expression
|
||||
being matched may be something more exotic such as a Unicode character type.
|
||||
</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>
|
||||
<span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</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">A</span><span class="special">></span>
|
||||
<span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
<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>
|
||||
<p>
|
||||
The overloads that accept a string, return the string that matched the named
|
||||
sub-expression <span class="emphasis"><em>n</em></span>. In the event that there is no such
|
||||
named sub-expression then returns an empty string.
|
||||
</p>
|
||||
<p>
|
||||
The template overloads of this function, allow the string and/or character
|
||||
type to be different from the character type of the underlying sequence and/or
|
||||
regular expression: in this case the characters will be widened to the underlying
|
||||
character type of the original regular expression. A compiler error will
|
||||
occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used
|
||||
as an argument, even when the underlying character type of the expression
|
||||
being matched may be something more exotic such as a Unicode character type.
|
||||
</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>
|
||||
<span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</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">A</span><span class="special">></span>
|
||||
<span class="identifier">const_reference</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">basic_string</span><span class="special"><</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">>&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span>
|
||||
<span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span>
|
||||
<span class="identifier">const_reference</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">basic_string</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">A</span><span class="special">>&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
<span class="bold"><strong>Effects</strong></span>: Returns a reference to the <a class="link" href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
|
||||
@ -413,6 +506,22 @@
|
||||
then returns a <a class="link" 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>
|
||||
<p>
|
||||
The overloads that accept a string, return a reference to the <a class="link" 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 named sub-expression <span class="emphasis"><em>n</em></span>.
|
||||
In the event that there is no such named sub-expression then returns a <a class="link" 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>
|
||||
<p>
|
||||
The template overloads of this function, allow the string and/or character
|
||||
type to be different from the character type of the underlying sequence and/or
|
||||
regular expression: in this case the characters will be widened to the underlying
|
||||
character type of the original regular expression. A compiler error will
|
||||
occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used
|
||||
as an argument, even when the underlying character type of the expression
|
||||
being matched may be something more exotic such as a Unicode character type.
|
||||
</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>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="regex_traits.html" title="regex_traits">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Unicode Regular Expression Algorithms</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -43,7 +43,7 @@
|
||||
on to the "real" algorithm.
|
||||
</p>
|
||||
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match"></a><h5>
|
||||
<a name="id643583"></a>
|
||||
<a name="id761519"></a>
|
||||
<a class="link" href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match">u32regex_match</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -89,7 +89,7 @@
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search"></a><h5>
|
||||
<a name="id644302"></a>
|
||||
<a name="id762034"></a>
|
||||
<a class="link" href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search">u32regex_search</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -128,7 +128,7 @@
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace"></a><h5>
|
||||
<a name="id644896"></a>
|
||||
<a name="id762453"></a>
|
||||
<a class="link" href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace">u32regex_replace</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Unicode Aware Regex Iterators</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -28,7 +28,7 @@
|
||||
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="id645356"></a>
|
||||
<a name="id762771"></a>
|
||||
<a class="link" href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator">u32regex_iterator</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -126,7 +126,7 @@
|
||||
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><h5>
|
||||
<a name="id647103"></a>
|
||||
<a name="id764128"></a>
|
||||
<a class="link" href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator">u32regex_token_iterator</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Unicode regular expression types</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -34,7 +34,7 @@
|
||||
here they are anyway:
|
||||
</p>
|
||||
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match"></a><h5>
|
||||
<a name="id652259"></a>
|
||||
<a name="id769118"></a>
|
||||
<a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match">regex_match</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -82,7 +82,7 @@
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_"></a><h5>
|
||||
<a name="id653171"></a>
|
||||
<a name="id769775"></a>
|
||||
<a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_">regex_match
|
||||
(second overload)</a>
|
||||
</h5>
|
||||
@ -110,7 +110,7 @@
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search"></a><h5>
|
||||
<a name="id653763"></a>
|
||||
<a name="id770206"></a>
|
||||
<a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search">regex_search</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -149,7 +149,7 @@
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_"></a><h5>
|
||||
<a name="id654500"></a>
|
||||
<a name="id770741"></a>
|
||||
<a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_">regex_search
|
||||
(second overload)</a>
|
||||
</h5>
|
||||
@ -164,7 +164,7 @@
|
||||
<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><h5>
|
||||
<a name="id654904"></a>
|
||||
<a name="id772949"></a>
|
||||
<a class="link" href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace">regex_replace</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -32,7 +32,7 @@
|
||||
an MFC/ATL string to a <a class="link" href="../../regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> or <a class="link" 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><h5>
|
||||
<a name="id655985"></a>
|
||||
<a name="id773719"></a>
|
||||
<a class="link" href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper">regex_iterator
|
||||
creation helper</a>
|
||||
</h5>
|
||||
@ -68,7 +68,7 @@
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers"></a><h5>
|
||||
<a name="id656734"></a>
|
||||
<a name="id774268"></a>
|
||||
<a class="link" 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>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
@ -165,7 +165,7 @@
|
||||
<a name="regcomp"></a><p>
|
||||
</p>
|
||||
<a name="boost_regex.ref.posix.regcomp"></a><h5>
|
||||
<a name="id659651"></a>
|
||||
<a name="id776953"></a>
|
||||
<a class="link" href="posix.html#boost_regex.ref.posix.regcomp">regcomp</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -379,7 +379,7 @@
|
||||
<a name="regerror"></a><p>
|
||||
</p>
|
||||
<a name="boost_regex.ref.posix.regerror"></a><h5>
|
||||
<a name="id660295"></a>
|
||||
<a name="id777458"></a>
|
||||
<a class="link" href="posix.html#boost_regex.ref.posix.regerror">regerror</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -467,7 +467,7 @@
|
||||
<a name="regexec"></a><p>
|
||||
</p>
|
||||
<a name="boost_regex.ref.posix.regexec"></a><h5>
|
||||
<a name="id660478"></a>
|
||||
<a name="id777586"></a>
|
||||
<a class="link" href="posix.html#boost_regex.ref.posix.regexec">regexec</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -537,7 +537,7 @@
|
||||
<a name="regfree"></a><p>
|
||||
</p>
|
||||
<a name="boost_regex.ref.posix.regfree"></a><h5>
|
||||
<a name="id660619"></a>
|
||||
<a name="id778830"></a>
|
||||
<a class="link" href="posix.html#boost_regex.ref.posix.regfree">regfree</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_iterator</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="regex_replace.html" title="regex_replace">
|
||||
@ -78,7 +78,7 @@
|
||||
<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><h5>
|
||||
<a name="id618047"></a>
|
||||
<a name="id735434"></a>
|
||||
<a class="link" href="regex_iterator.html#boost_regex.ref.regex_iterator.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -436,7 +436,7 @@
|
||||
<span class="emphasis"><em>m</em></span>.
|
||||
</p>
|
||||
<a name="boost_regex.ref.regex_iterator.examples"></a><h5>
|
||||
<a name="id621180"></a>
|
||||
<a name="id738951"></a>
|
||||
<a class="link" href="regex_iterator.html#boost_regex.ref.regex_iterator.examples">Examples</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_match</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="sub_match.html" title="sub_match">
|
||||
@ -80,7 +80,7 @@
|
||||
<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><h5>
|
||||
<a name="id601653"></a>
|
||||
<a name="id719031"></a>
|
||||
<a class="link" href="regex_match.html#boost_regex.ref.regex_match.description">Description</a>
|
||||
</h5>
|
||||
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
|
||||
@ -360,7 +360,7 @@
|
||||
<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><h5>
|
||||
<a name="id604831"></a>
|
||||
<a name="id722494"></a>
|
||||
<a class="link" href="regex_match.html#boost_regex.ref.regex_match.examples">Examples</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_replace</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="regex_search.html" title="regex_search">
|
||||
@ -53,7 +53,7 @@
|
||||
<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><h5>
|
||||
<a name="id612131"></a>
|
||||
<a name="id730052"></a>
|
||||
<a class="link" href="regex_replace.html#boost_regex.ref.regex_replace.description">Description</a>
|
||||
</h5>
|
||||
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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">></span>
|
||||
@ -163,7 +163,7 @@
|
||||
and then returns <code class="computeroutput"><span class="identifier">result</span></code>.
|
||||
</p>
|
||||
<a name="boost_regex.ref.regex_replace.examples"></a><h5>
|
||||
<a name="id613680"></a>
|
||||
<a name="id732259"></a>
|
||||
<a class="link" href="regex_replace.html#boost_regex.ref.regex_replace.examples">Examples</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_search</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="regex_match.html" title="regex_match">
|
||||
@ -73,7 +73,7 @@
|
||||
<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><h5>
|
||||
<a name="id607041"></a>
|
||||
<a name="id724118"></a>
|
||||
<a class="link" href="regex_search.html#boost_regex.ref.regex_search.description">Description</a>
|
||||
</h5>
|
||||
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">></span>
|
||||
@ -355,7 +355,7 @@
|
||||
<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><h5>
|
||||
<a name="id610306"></a>
|
||||
<a name="id728735"></a>
|
||||
<a class="link" href="regex_search.html#boost_regex.ref.regex_search.examples">Examples</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_token_iterator</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="regex_iterator.html" title="regex_iterator">
|
||||
@ -136,7 +136,7 @@
|
||||
<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><h5>
|
||||
<a name="id626987"></a>
|
||||
<a name="id745138"></a>
|
||||
<a class="link" href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.description">Description</a>
|
||||
</h5>
|
||||
<a name="boost_regex.regex_token_iterator.construct1"></a><p>
|
||||
@ -383,7 +383,7 @@
|
||||
<span class="emphasis"><em>m</em></span>.
|
||||
</p>
|
||||
<a name="boost_regex.ref.regex_token_iterator.examples"></a><h5>
|
||||
<a name="id631204"></a>
|
||||
<a name="id749909"></a>
|
||||
<a class="link" href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.examples">Examples</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>regex_traits</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="error_type.html" title="error_type">
|
||||
@ -46,7 +46,7 @@
|
||||
<span class="special">}</span> <span class="comment">// namespace boost
|
||||
</span></pre>
|
||||
<a name="boost_regex.ref.regex_traits.description"></a><h5>
|
||||
<a name="id641830"></a>
|
||||
<a name="id759551"></a>
|
||||
<a class="link" href="regex_traits.html#boost_regex.ref.regex_traits.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>sub_match</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="match_results.html" title="match_results">
|
||||
@ -329,11 +329,11 @@
|
||||
<span class="special">}</span> <span class="comment">// namespace boost
|
||||
</span></pre>
|
||||
<a name="boost_regex.ref.sub_match.description"></a><h5>
|
||||
<a name="id586170"></a>
|
||||
<a name="id703980"></a>
|
||||
<a class="link" href="sub_match.html#boost_regex.ref.sub_match.description">Description</a>
|
||||
</h5>
|
||||
<a name="boost_regex.ref.sub_match.members"></a><h6>
|
||||
<a name="id586194"></a>
|
||||
<a name="id703993"></a>
|
||||
<a class="link" href="sub_match.html#boost_regex.ref.sub_match.members">Members</a>
|
||||
</h6>
|
||||
<a name="boost_regex.sub_match.value_type"></a><p>
|
||||
@ -473,7 +473,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.ref.sub_match.sub_match_non_member_operators"></a><h6>
|
||||
<a name="id587769"></a>
|
||||
<a name="id705093"></a>
|
||||
<a class="link" href="sub_match.html#boost_regex.ref.sub_match.sub_match_non_member_operators">sub_match
|
||||
non-member operators</a>
|
||||
</h6>
|
||||
@ -1008,7 +1008,7 @@
|
||||
<span class="special">+</span> <span class="identifier">m2</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span></code>.
|
||||
</p>
|
||||
<a name="boost_regex.ref.sub_match.stream_inserter"></a><h6>
|
||||
<a name="id599741"></a>
|
||||
<a name="id717087"></a>
|
||||
<a class="link" href="sub_match.html#boost_regex.ref.sub_match.stream_inserter">Stream inserter</a>
|
||||
</h6>
|
||||
<a name="boost_regex.sub_match.op_stream"></a><p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>syntax_option_type</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../ref.html" title="Reference">
|
||||
<link rel="prev" href="bad_expression.html" title="bad_expression">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Options for Literal Strings</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<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 Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>syntax_option_type Synopsis</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" 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">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Regular Expression Syntax</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="partial_matches.html" title="Partial Matches">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>POSIX Extended Regular Expression Syntax</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../syntax.html" title="Regular Expression Syntax">
|
||||
<link rel="prev" href="perl_syntax.html" title="Perl Regular Expression Syntax">
|
||||
@ -28,7 +28,7 @@
|
||||
Expression Syntax</a>
|
||||
</h3></div></div></div>
|
||||
<a name="boost_regex.syntax.basic_extended.synopsis"></a><h4>
|
||||
<a name="id541641"></a>
|
||||
<a name="id656257"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.synopsis">Synopsis</a>
|
||||
</h4>
|
||||
<p>
|
||||
@ -46,7 +46,7 @@
|
||||
<a name="boost_regex.posix_extended_syntax"></a><p>
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.posix_extended_syntax"></a><h4>
|
||||
<a name="id541905"></a>
|
||||
<a name="id656436"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.posix_extended_syntax">POSIX
|
||||
Extended Syntax</a>
|
||||
</h4>
|
||||
@ -56,7 +56,7 @@
|
||||
</p>
|
||||
<pre class="programlisting">.[{()\*+?|^$</pre>
|
||||
<a name="boost_regex.syntax.basic_extended.wildcard_"></a><h5>
|
||||
<a name="id541945"></a>
|
||||
<a name="id656457"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.wildcard_">Wildcard:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -74,7 +74,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.syntax.basic_extended.anchors_"></a><h5>
|
||||
<a name="id542013"></a>
|
||||
<a name="id656502"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.anchors_">Anchors:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -86,7 +86,7 @@
|
||||
of an expression, or the last character of a sub-expression.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.marked_sub_expressions_"></a><h5>
|
||||
<a name="id542049"></a>
|
||||
<a name="id656524"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.marked_sub_expressions_">Marked
|
||||
sub-expressions:</a>
|
||||
</h5>
|
||||
@ -98,7 +98,7 @@
|
||||
to by a back-reference.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.repeats_"></a><h5>
|
||||
<a name="id542105"></a>
|
||||
<a name="id656558"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.repeats_">Repeats:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -184,7 +184,7 @@ cab
|
||||
operator to be applied to.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.back_references_"></a><h5>
|
||||
<a name="id542553"></a>
|
||||
<a name="id656864"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.back_references_">Back references:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -214,7 +214,7 @@ cab
|
||||
</p></td></tr>
|
||||
</table></div>
|
||||
<a name="boost_regex.syntax.basic_extended.alternation"></a><h5>
|
||||
<a name="id542647"></a>
|
||||
<a name="id656928"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.alternation">Alternation</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -227,7 +227,7 @@ cab
|
||||
will match either of "abd" or "abef".
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.character_sets_"></a><h5>
|
||||
<a name="id542750"></a>
|
||||
<a name="id656995"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_sets_">Character
|
||||
sets:</a>
|
||||
</h5>
|
||||
@ -240,7 +240,7 @@ cab
|
||||
A bracket expression may contain any combination of the following:
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.single_characters_"></a><h6>
|
||||
<a name="id542786"></a>
|
||||
<a name="id657015"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.single_characters_">Single
|
||||
characters:</a>
|
||||
</h6>
|
||||
@ -249,7 +249,7 @@ cab
|
||||
or 'c'.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.character_ranges_"></a><h6>
|
||||
<a name="id542837"></a>
|
||||
<a name="id657046"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_ranges_">Character
|
||||
ranges:</a>
|
||||
</h6>
|
||||
@ -265,7 +265,7 @@ cab
|
||||
the code points of the characters only.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.negation_"></a><h6>
|
||||
<a name="id542938"></a>
|
||||
<a name="id657108"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.negation_">Negation:</a>
|
||||
</h6>
|
||||
<p>
|
||||
@ -274,7 +274,7 @@ cab
|
||||
range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.character_classes_"></a><h6>
|
||||
<a name="id543020"></a>
|
||||
<a name="id657162"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_classes_">Character
|
||||
classes:</a>
|
||||
</h6>
|
||||
@ -284,7 +284,7 @@ cab
|
||||
<a class="link" href="character_classes.html" title="Character Class Names">character class names</a>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.collating_elements_"></a><h6>
|
||||
<a name="id543103"></a>
|
||||
<a name="id657213"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.collating_elements_">Collating
|
||||
Elements:</a>
|
||||
</h6>
|
||||
@ -312,7 +312,7 @@ cab
|
||||
matches a NUL character.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.equivalence_classes_"></a><h6>
|
||||
<a name="id543264"></a>
|
||||
<a name="id657315"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.equivalence_classes_">Equivalence
|
||||
classes:</a>
|
||||
</h6>
|
||||
@ -329,7 +329,7 @@ cab
|
||||
or even all locales on one platform.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.combinations_"></a><h6>
|
||||
<a name="id543369"></a>
|
||||
<a name="id657373"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.combinations_">Combinations:</a>
|
||||
</h6>
|
||||
<p>
|
||||
@ -337,7 +337,7 @@ cab
|
||||
<code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.escapes"></a><h5>
|
||||
<a name="id543448"></a>
|
||||
<a name="id657426"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.escapes">Escapes</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -363,7 +363,7 @@ cab
|
||||
extensions are also supported by Boost.Regex:
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.escapes_matching_a_specific_character"></a><h6>
|
||||
<a name="id543518"></a>
|
||||
<a name="id657469"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.escapes_matching_a_specific_character">Escapes
|
||||
matching a specific character</a>
|
||||
</h6>
|
||||
@ -552,7 +552,7 @@ cab
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_"></a><h6>
|
||||
<a name="id543866"></a>
|
||||
<a name="id657759"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_">"Single
|
||||
character" character classes:</a>
|
||||
</h6>
|
||||
@ -706,7 +706,7 @@ cab
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="boost_regex.syntax.basic_extended.character_properties"></a><h6>
|
||||
<a name="id544497"></a>
|
||||
<a name="id658328"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.character_properties">Character
|
||||
Properties</a>
|
||||
</h6>
|
||||
@ -813,7 +813,7 @@ cab
|
||||
matches any "digit" character, as does <code class="computeroutput"><span class="special">\</span><span class="identifier">p</span><span class="special">{</span><span class="identifier">digit</span><span class="special">}</span></code>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.word_boundaries"></a><h6>
|
||||
<a name="id544898"></a>
|
||||
<a name="id658635"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.word_boundaries">Word Boundaries</a>
|
||||
</h6>
|
||||
<p>
|
||||
@ -888,7 +888,7 @@ cab
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="boost_regex.syntax.basic_extended.buffer_boundaries"></a><h6>
|
||||
<a name="id545091"></a>
|
||||
<a name="id658791"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.buffer_boundaries">Buffer
|
||||
boundaries</a>
|
||||
</h6>
|
||||
@ -979,7 +979,7 @@ cab
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="boost_regex.syntax.basic_extended.continuation_escape"></a><h6>
|
||||
<a name="id545326"></a>
|
||||
<a name="id658976"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.continuation_escape">Continuation
|
||||
Escape</a>
|
||||
</h6>
|
||||
@ -991,7 +991,7 @@ cab
|
||||
match to start where the last one ended.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.quoting_escape"></a><h6>
|
||||
<a name="id545376"></a>
|
||||
<a name="id659004"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.quoting_escape">Quoting
|
||||
escape</a>
|
||||
</h6>
|
||||
@ -1005,7 +1005,7 @@ cab
|
||||
<span class="special">\*+</span><span class="identifier">aaa</span>
|
||||
</pre>
|
||||
<a name="boost_regex.syntax.basic_extended.unicode_escapes"></a><h6>
|
||||
<a name="id545499"></a>
|
||||
<a name="id659084"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.unicode_escapes">Unicode
|
||||
escapes</a>
|
||||
</h6>
|
||||
@ -1056,7 +1056,7 @@ cab
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="boost_regex.syntax.basic_extended.any_other_escape"></a><h6>
|
||||
<a name="id545632"></a>
|
||||
<a name="id659186"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.any_other_escape">Any other
|
||||
escape</a>
|
||||
</h6>
|
||||
@ -1065,7 +1065,7 @@ cab
|
||||
\@ matches a literal '@'.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.operator_precedence"></a><h5>
|
||||
<a name="id545662"></a>
|
||||
<a name="id659203"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.operator_precedence">Operator
|
||||
precedence</a>
|
||||
</h5>
|
||||
@ -1101,7 +1101,7 @@ cab
|
||||
</li>
|
||||
</ol></div>
|
||||
<a name="boost_regex.syntax.basic_extended.what_gets_matched"></a><h5>
|
||||
<a name="id545852"></a>
|
||||
<a name="id659336"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.what_gets_matched">What
|
||||
Gets Matched</a>
|
||||
</h5>
|
||||
@ -1111,11 +1111,11 @@ cab
|
||||
rule</a>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.variations"></a><h4>
|
||||
<a name="id545892"></a>
|
||||
<a name="id659358"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.variations">Variations</a>
|
||||
</h4>
|
||||
<a name="boost_regex.syntax.basic_extended.egrep"></a><h5>
|
||||
<a name="id545915"></a>
|
||||
<a name="id659371"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.egrep">Egrep</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1136,7 +1136,7 @@ cab
|
||||
used with the -E option.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.awk"></a><h5>
|
||||
<a name="id546073"></a>
|
||||
<a name="id659473"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.awk">awk</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -1150,7 +1150,7 @@ cab
|
||||
these by default anyway.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.options"></a><h4>
|
||||
<a name="id546119"></a>
|
||||
<a name="id659498"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.options">Options</a>
|
||||
</h4>
|
||||
<p>
|
||||
@ -1163,7 +1163,7 @@ cab
|
||||
modify how the case and locale sensitivity are to be applied.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_extended.references"></a><h4>
|
||||
<a name="id546248"></a>
|
||||
<a name="id659576"></a>
|
||||
<a class="link" href="basic_extended.html#boost_regex.syntax.basic_extended.references">References</a>
|
||||
</h4>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>POSIX Basic Regular Expression Syntax</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../syntax.html" title="Regular Expression Syntax">
|
||||
<link rel="prev" href="basic_extended.html" title="POSIX Extended Regular Expression Syntax">
|
||||
@ -28,7 +28,7 @@
|
||||
Expression Syntax</a>
|
||||
</h3></div></div></div>
|
||||
<a name="boost_regex.syntax.basic_syntax.synopsis"></a><h4>
|
||||
<a name="id546330"></a>
|
||||
<a name="id659625"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.synopsis">Synopsis</a>
|
||||
</h4>
|
||||
<p>
|
||||
@ -45,7 +45,7 @@
|
||||
<a name="boost_regex.posix_basic"></a><p>
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.posix_basic_syntax"></a><h4>
|
||||
<a name="id546622"></a>
|
||||
<a name="id659821"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.posix_basic_syntax">POSIX
|
||||
Basic Syntax</a>
|
||||
</h4>
|
||||
@ -55,7 +55,7 @@
|
||||
</p>
|
||||
<pre class="programlisting">.[\*^$</pre>
|
||||
<a name="boost_regex.syntax.basic_syntax.wildcard_"></a><h5>
|
||||
<a name="id546661"></a>
|
||||
<a name="id659842"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.wildcard_">Wildcard:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -73,7 +73,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.syntax.basic_syntax.anchors_"></a><h5>
|
||||
<a name="id546729"></a>
|
||||
<a name="id659887"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.anchors_">Anchors:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -85,7 +85,7 @@
|
||||
of an expression, or the last character of a sub-expression.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.marked_sub_expressions_"></a><h5>
|
||||
<a name="id546766"></a>
|
||||
<a name="id659907"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.marked_sub_expressions_">Marked
|
||||
sub-expressions:</a>
|
||||
</h5>
|
||||
@ -97,7 +97,7 @@
|
||||
by a back-reference.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.repeats_"></a><h5>
|
||||
<a name="id546822"></a>
|
||||
<a name="id659938"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.repeats_">Repeats:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -155,7 +155,7 @@ aaaa
|
||||
to.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.back_references_"></a><h5>
|
||||
<a name="id547066"></a>
|
||||
<a name="id660103"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.back_references_">Back references:</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -173,7 +173,7 @@ aaaa
|
||||
</p>
|
||||
<pre class="programlisting">aaabba</pre>
|
||||
<a name="boost_regex.syntax.basic_syntax.character_sets_"></a><h5>
|
||||
<a name="id547141"></a>
|
||||
<a name="id660152"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_sets_">Character
|
||||
sets:</a>
|
||||
</h5>
|
||||
@ -186,7 +186,7 @@ aaaa
|
||||
A bracket expression may contain any combination of the following:
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.single_characters_"></a><h6>
|
||||
<a name="id547177"></a>
|
||||
<a name="id660172"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.single_characters_">Single
|
||||
characters:</a>
|
||||
</h6>
|
||||
@ -195,7 +195,7 @@ aaaa
|
||||
or 'c'.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.character_ranges_"></a><h6>
|
||||
<a name="id547227"></a>
|
||||
<a name="id660204"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_ranges_">Character
|
||||
ranges:</a>
|
||||
</h6>
|
||||
@ -211,7 +211,7 @@ aaaa
|
||||
of the characters only.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.negation_"></a><h6>
|
||||
<a name="id547319"></a>
|
||||
<a name="id660260"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.negation_">Negation:</a>
|
||||
</h6>
|
||||
<p>
|
||||
@ -220,7 +220,7 @@ aaaa
|
||||
range a-c.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.character_classes_"></a><h6>
|
||||
<a name="id547380"></a>
|
||||
<a name="id660298"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_classes_">Character
|
||||
classes:</a>
|
||||
</h6>
|
||||
@ -230,7 +230,7 @@ aaaa
|
||||
<a class="link" href="character_classes.html" title="Character Class Names">character class names</a>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.collating_elements_"></a><h6>
|
||||
<a name="id547463"></a>
|
||||
<a name="id660350"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.collating_elements_">Collating
|
||||
Elements:</a>
|
||||
</h6>
|
||||
@ -259,7 +259,7 @@ aaaa
|
||||
element names</a>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.equivalence_classes_"></a><h6>
|
||||
<a name="id547611"></a>
|
||||
<a name="id660441"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.equivalence_classes_">Equivalence
|
||||
classes:</a>
|
||||
</h6>
|
||||
@ -276,7 +276,7 @@ aaaa
|
||||
or even all locales on one platform.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.combinations_"></a><h6>
|
||||
<a name="id547716"></a>
|
||||
<a name="id660499"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.combinations_">Combinations:</a>
|
||||
</h6>
|
||||
<p>
|
||||
@ -284,7 +284,7 @@ aaaa
|
||||
<code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]].</span></code>
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.escapes"></a><h5>
|
||||
<a name="id547794"></a>
|
||||
<a name="id662424"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.escapes">Escapes</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -299,7 +299,7 @@ aaaa
|
||||
will match either a literal '\' or a '^'.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.what_gets_matched"></a><h4>
|
||||
<a name="id547851"></a>
|
||||
<a name="id662458"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.what_gets_matched">What Gets
|
||||
Matched</a>
|
||||
</h4>
|
||||
@ -309,13 +309,13 @@ aaaa
|
||||
rule</a>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.variations"></a><h4>
|
||||
<a name="id547890"></a>
|
||||
<a name="id662479"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.variations">Variations</a>
|
||||
</h4>
|
||||
<a name="boost_regex.grep_syntax"></a><p>
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.grep"></a><h5>
|
||||
<a name="id547923"></a>
|
||||
<a name="id662500"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.grep">Grep</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -333,7 +333,7 @@ aaaa
|
||||
As its name suggests, this behavior is consistent with the Unix utility grep.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.emacs"></a><h5>
|
||||
<a name="id548067"></a>
|
||||
<a name="id662594"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.emacs">emacs</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -613,7 +613,7 @@ aaaa
|
||||
leftmost-longest rule</a>.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.options"></a><h4>
|
||||
<a name="id548562"></a>
|
||||
<a name="id663012"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.options">Options</a>
|
||||
</h4>
|
||||
<p>
|
||||
@ -627,7 +627,7 @@ aaaa
|
||||
options</a> modify how the case and locale sensitivity are to be applied.
|
||||
</p>
|
||||
<a name="boost_regex.syntax.basic_syntax.references"></a><h4>
|
||||
<a name="id548735"></a>
|
||||
<a name="id663119"></a>
|
||||
<a class="link" href="basic_syntax.html#boost_regex.syntax.basic_syntax.references">References</a>
|
||||
</h4>
|
||||
<p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Character Class Names</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../syntax.html" title="Regular Expression Syntax">
|
||||
<link rel="prev" href="basic_syntax.html" title="POSIX Basic Regular Expression Syntax">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Character classes that are supported by Unicode Regular Expressions</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../character_classes.html" title="Character Class Names">
|
||||
<link rel="prev" href="std_char_clases.html" title="Character Classes that are Always Supported">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Character Classes that are Always Supported</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../character_classes.html" title="Character Class Names">
|
||||
<link rel="prev" href="../character_classes.html" title="Character Class Names">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Collating Names</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../syntax.html" title="Regular Expression Syntax">
|
||||
<link rel="prev" href="character_classes/optional_char_class_names.html" title="Character classes that are supported by Unicode Regular Expressions">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Digraphs</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../collating_names.html" title="Collating Names">
|
||||
<link rel="prev" href="../collating_names.html" title="Collating Names">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Named Unicode Characters</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../collating_names.html" title="Collating Names">
|
||||
<link rel="prev" href="posix_symbolic_names.html" title="POSIX Symbolic Names">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>POSIX Symbolic Names</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../collating_names.html" title="Collating Names">
|
||||
<link rel="prev" href="digraphs.html" title="Digraphs">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>The Leftmost Longest Rule</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../syntax.html" title="Regular Expression Syntax">
|
||||
<link rel="prev" href="collating_names/named_unicode.html" title="Named Unicode Characters">
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Unicode and Boost.Regex</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="../index.html" title="Boost.Regex">
|
||||
<link rel="up" href="../index.html" title="Boost.Regex">
|
||||
<link rel="prev" href="introduction_and_overview.html" title="Introduction and Overview">
|
||||
@ -30,7 +30,7 @@
|
||||
There are two ways to use Boost.Regex with Unicode strings:
|
||||
</p>
|
||||
<a name="boost_regex.unicode.rely_on_wchar_t"></a><h5>
|
||||
<a name="id530083"></a>
|
||||
<a name="id646668"></a>
|
||||
<a class="link" href="unicode.html#boost_regex.unicode.rely_on_wchar_t">Rely on wchar_t</a>
|
||||
</h5>
|
||||
<p>
|
||||
@ -56,7 +56,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_regex.unicode.use_a_unicode_aware_regular_expression_type_"></a><h5>
|
||||
<a name="id530267"></a>
|
||||
<a name="id646785"></a>
|
||||
<a class="link" href="unicode.html#boost_regex.unicode.use_a_unicode_aware_regular_expression_type_">Use
|
||||
a Unicode Aware Regular Expression Type.</a>
|
||||
</h5>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Boost.Regex</title>
|
||||
<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
|
||||
<link rel="home" href="index.html" title="Boost.Regex">
|
||||
<link rel="next" href="boost_regex/configuration.html" title="Configuration">
|
||||
</head>
|
||||
@ -28,7 +28,7 @@
|
||||
</h3></div></div></div>
|
||||
<div><p class="copyright">Copyright <20> 1998 -2007 John Maddock</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="id473252"></a><p>
|
||||
<a name="id637415"></a><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>
|
||||
@ -196,7 +196,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: December 23, 2008 at 17:35:37 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: May 13, 2009 at 09:14:16 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
@ -71,9 +71,33 @@ Class template `match_results` is most commonly used as one of the typedefs
|
||||
bool ``[link boost_regex.match_results.empty empty]``() const;
|
||||
// element access:
|
||||
difference_type ``[link boost_regex.match_results.length length]``(int sub = 0) const;
|
||||
difference_type ``[link boost_regex.match_results.length length]``(const char_type* sub) const;
|
||||
template <class charT>
|
||||
difference_type ``[link boost_regex.match_results.length length]``(const charT* sub) const;
|
||||
template <class charT, class Traits, class A>
|
||||
difference_type ``[link boost_regex.match_results.length length]``(const std::basic_string<charT, Traits, A>& sub) const;
|
||||
difference_type ``[link boost_regex.match_results.position position]``(unsigned int sub = 0) const;
|
||||
difference_type ``[link boost_regex.match_results.position position]``(const char_type* sub) const;
|
||||
template <class charT>
|
||||
difference_type ``[link boost_regex.match_results.position position]``(const charT* sub) const;
|
||||
template <class charT, class Traits, class A>
|
||||
difference_type ``[link boost_regex.match_results.position position]``(const std::basic_string<charT, Traits, A>& sub) const;
|
||||
string_type ``[link boost_regex.match_results.str str]``(int sub = 0) const;
|
||||
string_type ``[link boost_regex.match_results.str str]``(const char_type* sub)const;
|
||||
template <class Traits, class A>
|
||||
string_type ``[link boost_regex.match_results.str str]``(const std::basic_string<char_type, Traits, A>& sub)const;
|
||||
template <class charT>
|
||||
string_type ``[link boost_regex.match_results.str str]``(const charT* sub)const;
|
||||
template <class charT, class Traits, class A>
|
||||
string_type ``[link boost_regex.match_results.str str]``(const std::basic_string<charT, Traits, A>& sub)const;
|
||||
const_reference ``[link boost_regex.match_results.subscript operator\[\]]``(int n) const;
|
||||
const_reference ``[link boost_regex.match_results.subscript operator\[\]]``(const char_type* n) const;
|
||||
template <class Traits, class A>
|
||||
const_reference ``[link boost_regex.match_results.subscript operator\[\]]``(const std::basic_string<char_type, Traits, A>& n) const;
|
||||
template <class charT>
|
||||
const_reference ``[link boost_regex.match_results.subscript operator\[\]]``(const charT* n) const;
|
||||
template <class charT, class Traits, class A>
|
||||
const_reference ``[link boost_regex.match_results.subscript operator\[\]]``(const std::basic_string<charT, Traits, A>& n) const;
|
||||
|
||||
const_reference ``[link boost_regex.match_results.prefix prefix]``() const;
|
||||
|
||||
@ -190,30 +214,86 @@ stored in *this.
|
||||
[#boost_regex.match_results.length]
|
||||
|
||||
difference_type length(int sub = 0)const;
|
||||
difference_type length(const char_type* sub)const;
|
||||
template <class charT>
|
||||
difference_type length(const charT* sub)const;
|
||||
template <class charT, class Traits, class A>
|
||||
difference_type length(const std::basic_string<charT, Traits, A>&)const;
|
||||
|
||||
[*Effects]: Returns the length of sub-expression /sub/, that is to say:
|
||||
`(*this)[sub].length()`.
|
||||
|
||||
The overloads that accept a string refer to a named sub-expression /n/.
|
||||
In the event that there is no such named sub-expression then returns an empty string.
|
||||
|
||||
The template overloads of this function, allow the string and\/or character type
|
||||
to be different from the character type of the underlying sequence and\/or regular expression:
|
||||
in this case the characters will be widened to the underlying character type of the original regular expression.
|
||||
A compiler error will occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used as an argument, even when
|
||||
the underlying character type of the expression being matched may be something more exotic such as a
|
||||
Unicode character type.
|
||||
|
||||
[#boost_regex.match_results.position]
|
||||
|
||||
difference_type position(unsigned int sub = 0)const;
|
||||
difference_type position(const char_type* sub)const;
|
||||
template <class charT>
|
||||
difference_type position(const charT* sub)const;
|
||||
template <class charT, class Traits, class A>
|
||||
difference_type position(const std::basic_string<charT, Traits, A>&)const;
|
||||
|
||||
[*Effects]: Returns the starting location of sub-expression /sub/, or -1 if /sub/ was
|
||||
not matched. Note that if this represents a partial match , then `position()`
|
||||
will return the location of the partial match even though `(*this)[0].matched` is false.
|
||||
|
||||
The overloads that accept a string refer to a named sub-expression /n/.
|
||||
In the event that there is no such named sub-expression then returns an empty string.
|
||||
|
||||
The template overloads of this function, allow the string and\/or character type
|
||||
to be different from the character type of the underlying sequence and\/or regular expression:
|
||||
in this case the characters will be widened to the underlying character type of the original regular expression.
|
||||
A compiler error will occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used as an argument, even when
|
||||
the underlying character type of the expression being matched may be something more exotic such as a
|
||||
Unicode character type.
|
||||
|
||||
|
||||
[#boost_regex.match_results.str]
|
||||
|
||||
string_type str(int sub = 0)const;
|
||||
string_type str(const char_type* sub)const;
|
||||
template <class Traits, class A>
|
||||
string_type str(const std::basic_string<char_type, Traits, A>& sub)const;
|
||||
template <class charT>
|
||||
string_type str(const charT* sub)const;
|
||||
template <class charT, class Traits, class A>
|
||||
string_type str(const std::basic_string<charT, Traits, A>& sub)const;
|
||||
|
||||
[*Effects]: Returns sub-expression /sub/ as a string: `string_type((*this)[sub])`.
|
||||
|
||||
The overloads that accept a string, return the string that matched the named sub-expression /n/.
|
||||
In the event that there is no such named sub-expression then returns an empty string.
|
||||
|
||||
The template overloads of this function, allow the string and\/or character type
|
||||
to be different from the character type of the underlying sequence and\/or regular expression:
|
||||
in this case the characters will be widened to the underlying character type of the original regular expression.
|
||||
A compiler error will occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used as an argument, even when
|
||||
the underlying character type of the expression being matched may be something more exotic such as a
|
||||
Unicode character type.
|
||||
|
||||
|
||||
[#boost_regex.match_results.subscript]
|
||||
|
||||
const_reference operator[](int n) const;
|
||||
const_reference operator[](int n) const;
|
||||
const_reference operator[](const char_type* n) const;
|
||||
template <class Traits, class A>
|
||||
const_reference operator[](const std::basic_string<char_type, Traits, A>& n) const;
|
||||
template <class charT>
|
||||
const_reference operator[](const charT* n) const;
|
||||
template <class charT, class Traits, class A>
|
||||
const_reference operator[](const std::basic_string<charT, Traits, A>& n) const;
|
||||
|
||||
[*Effects]: Returns a reference to the [sub_match] object representing the character
|
||||
sequence that matched marked sub-expression /n/. If `n == 0` then returns a
|
||||
@ -222,6 +302,19 @@ matched the whole regular expression. If /n/ is out of range, or if /n/ is an
|
||||
unmatched sub-expression, then returns a [sub_match] object whose matched
|
||||
member is false.
|
||||
|
||||
The overloads that accept a string, return a reference to the [sub_match]
|
||||
object representing the character sequence that matched the named sub-expression /n/.
|
||||
In the event that there is no such named sub-expression then returns a [sub_match] object whose matched
|
||||
member is false.
|
||||
|
||||
The template overloads of this function, allow the string and\/or character type
|
||||
to be different from the character type of the underlying sequence and\/or regular expression:
|
||||
in this case the characters will be widened to the underlying character type of the original regular expression.
|
||||
A compiler error will occur if the argument passes a wider character type than the underlying sequence.
|
||||
These overloads allow a normal narrow character C string literal to be used as an argument, even when
|
||||
the underlying character type of the expression being matched may be something more exotic such as a
|
||||
Unicode character type.
|
||||
|
||||
|
||||
[#boost_regex.match_results.prefix]
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
The Perl regular expression syntax is based on that used by the
|
||||
programming language Perl . Perl regular expressions are the
|
||||
default behavior in Boost.Regex or you can pass the flag `perl` to the
|
||||
default behavior in Boost.Regex or you can pass the flag =perl= to the
|
||||
[basic_regex] constructor, for example:
|
||||
|
||||
// e1 is a case sensitive Perl regular expression:
|
||||
@ -34,9 +34,9 @@ The single character '.' when used outside of a character set will match
|
||||
any single character except:
|
||||
|
||||
* The NULL character when the [link boost_regex.ref.match_flag_type flag
|
||||
`match_not_dot_null`] is passed to the matching algorithms.
|
||||
=match_not_dot_null=] is passed to the matching algorithms.
|
||||
* The newline character when the [link boost_regex.ref.match_flag_type
|
||||
flag `match_not_dot_newline`] is passed to
|
||||
flag =match_not_dot_newline=] is passed to
|
||||
the matching algorithms.
|
||||
|
||||
[h4 Anchors]
|
||||
@ -47,7 +47,7 @@ A '$' character shall match the end of a line.
|
||||
|
||||
[h4 Marked sub-expressions]
|
||||
|
||||
A section beginning `(` and ending `)` acts as a marked sub-expression.
|
||||
A section beginning =(= and ending =)= acts as a marked sub-expression.
|
||||
Whatever matched the sub-expression is split out in a separate field by
|
||||
the matching algorithms. Marked sub-expressions can also repeated, or
|
||||
referred to by a back-reference.
|
||||
@ -58,23 +58,23 @@ A marked sub-expression is useful to lexically group part of a regular
|
||||
expression, but has the side-effect of spitting out an extra field in
|
||||
the result. As an alternative you can lexically group part of a
|
||||
regular expression, without generating a marked sub-expression by using
|
||||
`(?:` and `)` , for example `(?:ab)+` will repeat `ab` without splitting
|
||||
=(?:= and =)= , for example =(?:ab)+= will repeat =ab= without splitting
|
||||
out any separate sub-expressions.
|
||||
|
||||
[h4 Repeats]
|
||||
|
||||
Any atom (a single character, a marked sub-expression, or a character class)
|
||||
can be repeated with the `*`, `+`, `?`, and `{}` operators.
|
||||
can be repeated with the =*=, =+=, =?=, and ={}= operators.
|
||||
|
||||
The `*` operator will match the preceding atom zero or more times,
|
||||
for example the expression `a*b` will match any of the following:
|
||||
The =*= operator will match the preceding atom zero or more times,
|
||||
for example the expression =a*b= will match any of the following:
|
||||
|
||||
b
|
||||
ab
|
||||
aaaaaaaab
|
||||
|
||||
The `+` operator will match the preceding atom one or more times, for
|
||||
example the expression `a+b` will match any of the following:
|
||||
The =+= operator will match the preceding atom one or more times, for
|
||||
example the expression =a+b= will match any of the following:
|
||||
|
||||
ab
|
||||
aaaaaaaab
|
||||
@ -83,7 +83,7 @@ But will not match:
|
||||
|
||||
b
|
||||
|
||||
The `?` operator will match the preceding atom zero or one times, for
|
||||
The =?= operator will match the preceding atom zero or one times, for
|
||||
example the expression ca?b will match any of the following:
|
||||
|
||||
cb
|
||||
@ -95,11 +95,11 @@ But will not match:
|
||||
|
||||
An atom can also be repeated with a bounded repeat:
|
||||
|
||||
`a{n}` Matches 'a' repeated exactly n times.
|
||||
=a{n}= Matches 'a' repeated exactly n times.
|
||||
|
||||
`a{n,}` Matches 'a' repeated n or more times.
|
||||
=a{n,}= Matches 'a' repeated n or more times.
|
||||
|
||||
`a{n, m}` Matches 'a' repeated between n and m times inclusive.
|
||||
=a{n, m}= Matches 'a' repeated between n and m times inclusive.
|
||||
|
||||
For example:
|
||||
|
||||
@ -120,7 +120,7 @@ be repeated, for example:
|
||||
|
||||
a(*)
|
||||
|
||||
Will raise an error, as there is nothing for the `*` operator to be applied to.
|
||||
Will raise an error, as there is nothing for the =*= operator to be applied to.
|
||||
|
||||
[h4 Non greedy repeats]
|
||||
|
||||
@ -128,21 +128,38 @@ The normal repeat operators are "greedy", that is to say they will consume as
|
||||
much input as possible. There are non-greedy versions available that will
|
||||
consume as little input as possible while still producing a match.
|
||||
|
||||
`*?` Matches the previous atom zero or more times, while consuming as little
|
||||
=*?= Matches the previous atom zero or more times, while consuming as little
|
||||
input as possible.
|
||||
|
||||
`+?` Matches the previous atom one or more times, while consuming as
|
||||
=+?= Matches the previous atom one or more times, while consuming as
|
||||
little input as possible.
|
||||
|
||||
`??` Matches the previous atom zero or one times, while consuming
|
||||
=??= Matches the previous atom zero or one times, while consuming
|
||||
as little input as possible.
|
||||
|
||||
`{n,}?` Matches the previous atom n or more times, while consuming as
|
||||
={n,}?= Matches the previous atom n or more times, while consuming as
|
||||
little input as possible.
|
||||
|
||||
`{n,m}?` Matches the previous atom between n and m times, while
|
||||
={n,m}?= Matches the previous atom between n and m times, while
|
||||
consuming as little input as possible.
|
||||
|
||||
[h4 Pocessive repeats]
|
||||
|
||||
By default when a repeated patten does not match then the engine will backtrack until
|
||||
a match is found. However, this behaviour can sometime be undesireable so there are
|
||||
also "pocessive" repeats: these match as much as possible and do not then allow
|
||||
backtracking if the rest of the expression fails to match.
|
||||
|
||||
=*+= Matches the previous atom zero or more times, while giving nothing back.
|
||||
|
||||
=++= Matches the previous atom one or more times, while giving nothing back.
|
||||
|
||||
=?+= Matches the previous atom zero or one times, while giving nothing back.
|
||||
|
||||
={n,}+= Matches the previous atom n or more times, while giving nothing back.
|
||||
|
||||
={n,m}+= Matches the previous atom between n and m times, while giving nothing back.
|
||||
|
||||
[h4 Back references]
|
||||
|
||||
An escape character followed by a digit /n/, where /n/ is in the range 1-9,
|
||||
@ -158,27 +175,42 @@ Will match the string:
|
||||
But not the string:
|
||||
|
||||
aaabba
|
||||
|
||||
You can also use the \g escape for the same function, for example:
|
||||
|
||||
[table
|
||||
[[Escape][Meaning]]
|
||||
[[=\g1=][Match whatever matched sub-expression 1]]
|
||||
[[=\g{1}=][Match whatever matched sub-expression 1: this form allows for safer
|
||||
parsing of the expression in cases like =\g{1}2= or for indexes higher than 9 as in =\g{1234}=]]
|
||||
[[=\g-1=][Match whatever matched the last opened sub-expression]]
|
||||
[[=\g{-2}=][Match whatever matched the last but one opened sub-expression]]
|
||||
[[=\g{one}=][Match whatever matched the sub-expression named "one"]]
|
||||
]
|
||||
|
||||
Finally the \k escape can be used to refer to named subexpressions, for example [^\k<two>] will match
|
||||
whatever matched the subexpression named "two".
|
||||
|
||||
[h4 Alternation]
|
||||
|
||||
The `|` operator will match either of its arguments, so for example:
|
||||
`abc|def` will match either "abc" or "def".
|
||||
The =|= operator will match either of its arguments, so for example:
|
||||
=abc|def= will match either "abc" or "def".
|
||||
|
||||
Parenthesis can be used to group alternations, for example: `ab(d|ef)`
|
||||
Parenthesis can be used to group alternations, for example: =ab(d|ef)=
|
||||
will match either of "abd" or "abef".
|
||||
|
||||
Empty alternatives are not allowed (these are almost always a mistake), but
|
||||
if you really want an empty alternative use `(?:)` as a placeholder, for example:
|
||||
if you really want an empty alternative use =(?:)= as a placeholder, for example:
|
||||
|
||||
`|abc` is not a valid expression, but
|
||||
=|abc= is not a valid expression, but
|
||||
|
||||
`(?:)|abc` is and is equivalent, also the expression:
|
||||
=(?:)|abc= is and is equivalent, also the expression:
|
||||
|
||||
`(?:abc)??` has exactly the same effect.
|
||||
=(?:abc)??= has exactly the same effect.
|
||||
|
||||
[h4 Character sets]
|
||||
|
||||
A character set is a bracket-expression starting with `[` and ending with `]`,
|
||||
A character set is a bracket-expression starting with =[= and ending with =]=,
|
||||
it defines a set of characters, and matches any single character that is a
|
||||
member of that set.
|
||||
|
||||
@ -186,35 +218,35 @@ A bracket expression may contain any combination of the following:
|
||||
|
||||
[h5 Single characters]
|
||||
|
||||
For example `[abc]`, will match any of the characters 'a', 'b', or 'c'.
|
||||
For example =[abc]=, will match any of the characters 'a', 'b', or 'c'.
|
||||
|
||||
[h5 Character ranges]
|
||||
|
||||
For example `[a-c]` will match any single character in the range 'a' to 'c'.
|
||||
For example =[a-c]= will match any single character in the range 'a' to 'c'.
|
||||
By default, for Perl regular expressions, a character x is within the
|
||||
range y to z, if the code point of the character lies within the codepoints of
|
||||
the endpoints of the range. Alternatively, if you set the
|
||||
[link boost_regex.ref.syntax_option_type.syntax_option_type_perl `collate` flag]
|
||||
[link boost_regex.ref.syntax_option_type.syntax_option_type_perl =collate= flag]
|
||||
when constructing the regular expression, then ranges are locale sensitive.
|
||||
|
||||
[h5 Negation]
|
||||
|
||||
If the bracket-expression begins with the ^ character, then it matches the
|
||||
complement of the characters it contains, for example `[^a-c]` matches
|
||||
any character that is not in the range `a-c`.
|
||||
complement of the characters it contains, for example =[^a-c]= matches
|
||||
any character that is not in the range =a-c=.
|
||||
|
||||
[h5 Character classes]
|
||||
|
||||
An expression of the form `[[:name:]]` matches the named character class
|
||||
"name", for example `[[:lower:]]` matches any lower case character.
|
||||
An expression of the form [^\[\[:name:\]\]] matches the named character class
|
||||
"name", for example [^\[\[:lower:\]\]] matches any lower case character.
|
||||
See [link boost_regex.syntax.character_classes character class names].
|
||||
|
||||
[h5 Collating Elements]
|
||||
|
||||
An expression of the form `[[.col.]` matches the collating element /col/.
|
||||
An expression of the form [^\[\[.col.\]\]] matches the collating element /col/.
|
||||
A collating element is any single character, or any sequence of characters
|
||||
that collates as a single unit. Collating elements may also be used
|
||||
as the end point of a range, for example: `[[.ae.]-c]` matches the
|
||||
as the end point of a range, for example: [^\[\[.ae.\]-c\]] matches the
|
||||
character sequence "ae", plus any single character in the range "ae"-c,
|
||||
assuming that "ae" is treated as a single collating element in the current locale.
|
||||
|
||||
@ -223,11 +255,11 @@ As an extension, a collating element may also be specified via it's
|
||||
|
||||
[[.NUL.]]
|
||||
|
||||
matches a `\0` character.
|
||||
matches a =\0= character.
|
||||
|
||||
[h5 Equivalence classes]
|
||||
|
||||
An expression of the form `[[=col=]]`, matches any character or collating element
|
||||
An expression of the form [^\[\[\=col\=\]\]], matches any character or collating element
|
||||
whose primary sort key is the same as that for collating element /col/, as with
|
||||
collating elements the name /col/ may be a
|
||||
[link boost_regex.syntax.collating_names symbolic name]. A primary sort key is
|
||||
@ -250,7 +282,7 @@ that is either a "digit", /or/ is /not/ a "word" character.
|
||||
[h5 Combinations]
|
||||
|
||||
All of the above can be combined in one character set declaration, for example:
|
||||
`[[:digit:]a-c[.NUL.]]`.
|
||||
[^\[\[:digit:\]a-c\[.NUL.\]\]].
|
||||
|
||||
[h4 Escapes]
|
||||
|
||||
@ -260,24 +292,24 @@ The following escape sequences are all synonyms for single characters:
|
||||
|
||||
[table
|
||||
[[Escape][Character]]
|
||||
[[`\a`][`\a`]]
|
||||
[[`\e`][`0x1B`]]
|
||||
[[`\f`][`\f`]]
|
||||
[[`\n`][`\n`]]
|
||||
[[`\r`][`\r`]]
|
||||
[[`\t`][`\t`]]
|
||||
[[`\v `][`\v`]]
|
||||
[[`\b`][`\b` (but only inside a character class declaration).]]
|
||||
[[`\cX`][An ASCII escape sequence - the character whose code point is X % 32]]
|
||||
[[`\xdd`][A hexadecimal escape sequence - matches the single character whose
|
||||
[[=\a=][=\a=]]
|
||||
[[=\e=][=0x1B=]]
|
||||
[[=\f=][=\f=]]
|
||||
[[=\n=][=\n=]]
|
||||
[[=\r=][=\r=]]
|
||||
[[=\t=][=\t=]]
|
||||
[[=\v=][=\v=]]
|
||||
[[=\b=][=\b= (but only inside a character class declaration).]]
|
||||
[[=\cX=][An ASCII escape sequence - the character whose code point is X % 32]]
|
||||
[[=\xdd=][A hexadecimal escape sequence - matches the single character whose
|
||||
code point is 0xdd.]]
|
||||
[[`\x{dddd}`][A hexadecimal escape sequence - matches the single character whose
|
||||
[[=\x{dddd}=][A hexadecimal escape sequence - matches the single character whose
|
||||
code point is 0xdddd.]]
|
||||
[[`\0ddd`][An octal escape sequence - matches the single character whose
|
||||
[[=\0ddd=][An octal escape sequence - matches the single character whose
|
||||
code point is 0ddd.]]
|
||||
[[`\N{name}`][Matches the single character which has the
|
||||
[[=\N{name}=][Matches the single character which has the
|
||||
[link boost_regex.syntax.collating_names symbolic name] /name/.
|
||||
For example `\N{newline}` matches the single character \\n.]]
|
||||
For example =\N{newline}= matches the single character \\n.]]
|
||||
]
|
||||
|
||||
[h5 "Single character" character classes:]
|
||||
@ -296,11 +328,15 @@ The following are supported by default:
|
||||
[[`\s`][`[[:space:]]`]]
|
||||
[[`\u`][`[[:upper:]]`]]
|
||||
[[`\w`][`[[:word:]]`]]
|
||||
[[`\h`][Horizontal whitespace]]
|
||||
[[`\v`][Vertical whitespace]]
|
||||
[[`\D`][`[^[:digit:]]`]]
|
||||
[[`\L`][`[^[:lower:]]`]]
|
||||
[[`\S`][`[^[:space:]]`]]
|
||||
[[`\U`][`[^[:upper:]]`]]
|
||||
[[`\W`][`[^[:word:]]`]]
|
||||
[[`\H`][Not Horizontal whitespace]]
|
||||
[[`\V`][Not Vertical whitespace]]
|
||||
]
|
||||
|
||||
[h5 Character Properties]
|
||||
@ -316,19 +352,19 @@ to the [link boost_regex.syntax.character_classes names used in character classe
|
||||
[[`\P{Name}`][Matches any character that does not have the property Name.][`[^[:Name:]]`]]
|
||||
]
|
||||
|
||||
For example `\pd` matches any "digit" character, as does `\p{digit}`.
|
||||
For example =\pd= matches any "digit" character, as does =\p{digit}=.
|
||||
|
||||
[h5 Word Boundaries]
|
||||
|
||||
The following escape sequences match the boundaries of words:
|
||||
|
||||
`\<` Matches the start of a word.
|
||||
=\<= Matches the start of a word.
|
||||
|
||||
`\>` Matches the end of a word.
|
||||
=\>= Matches the end of a word.
|
||||
|
||||
`\b` Matches a word boundary (the start or end of a word).
|
||||
=\b= Matches a word boundary (the start or end of a word).
|
||||
|
||||
`\B` Matches only when not at a word boundary.
|
||||
=\B= Matches only when not at a word boundary.
|
||||
|
||||
[h5 Buffer boundaries]
|
||||
|
||||
@ -345,30 +381,44 @@ context is the whole of the input text that is being matched against
|
||||
\\z Matches at the end of a buffer only (the same as \\').
|
||||
|
||||
\\Z Matches an optional sequence of newlines at the end of a buffer:
|
||||
equivalent to the regular expression `\n*\z`
|
||||
equivalent to the regular expression =\n*\z=
|
||||
|
||||
[h5 Continuation Escape]
|
||||
|
||||
The sequence `\G` matches only at the end of the last match found, or at
|
||||
The sequence =\G= matches only at the end of the last match found, or at
|
||||
the start of the text being matched if no previous match was found.
|
||||
This escape useful if you're iterating over the matches contained within a
|
||||
text, and you want each subsequence match to start where the last one ended.
|
||||
|
||||
[h5 Quoting escape]
|
||||
|
||||
The escape sequence `\Q` begins a "quoted sequence": all the subsequent characters
|
||||
The escape sequence =\Q= begins a "quoted sequence": all the subsequent characters
|
||||
are treated as literals, until either the end of the regular expression or \\E
|
||||
is found. For example the expression: `\Q\*+\Ea+` would match either of:
|
||||
is found. For example the expression: =\Q\*+\Ea+= would match either of:
|
||||
|
||||
\*+a
|
||||
\*+aaa
|
||||
|
||||
[h5 Unicode escapes]
|
||||
|
||||
`\C` Matches a single code point: in Boost regex this has exactly the
|
||||
=\C= Matches a single code point: in Boost regex this has exactly the
|
||||
same effect as a "." operator.
|
||||
`\X` Matches a combining character sequence: that is any non-combining
|
||||
=\X= Matches a combining character sequence: that is any non-combining
|
||||
character followed by a sequence of zero or more combining characters.
|
||||
|
||||
[h5 Matching Line Endings]
|
||||
|
||||
The escape sequence =\R= matches any line ending character sequence, specifically it is identical to
|
||||
the expression [^(?>\x0D\x0A?|\[\x0A-\x0C\x85\x{2028}\x{2029}\])].
|
||||
|
||||
[h5 Keeping back some text]
|
||||
|
||||
=\K= Resets the start location of $0 to the current text position: in other words everything to the
|
||||
left of \K is "kept back" and does not form part of the regular expression match. $` is updated
|
||||
accordingly.
|
||||
|
||||
For example =foo\Kbar= matched against the text "foobar" would return the match "bar" for $0 and "foo"
|
||||
for $`. This can be used to simulate variable width lookbehind assertions.
|
||||
|
||||
[h5 Any other escape]
|
||||
|
||||
@ -377,31 +427,62 @@ Any other escape sequence matches the character that is escaped, for example
|
||||
|
||||
[h4 Perl Extended Patterns]
|
||||
|
||||
Perl-specific extensions to the regular expression syntax all start with `(?`.
|
||||
Perl-specific extensions to the regular expression syntax all start with =(?=.
|
||||
|
||||
[h5 Named Subexpressions]
|
||||
|
||||
You can create a named subexpression using:
|
||||
|
||||
(?<NAME>expression)
|
||||
|
||||
Which can be then be refered to by the name /NAME/. Alternatively you can delimit the name
|
||||
using 'NAME' as in:
|
||||
|
||||
(?'NAME'expression)
|
||||
|
||||
These named subexpressions can be refered to in a backreference using either [^\g{NAME}] or [^\k<NAME>]
|
||||
and can also be refered to by name in a [perl_format] format string for search and replace operations, or in the
|
||||
[match_results] member functions.
|
||||
|
||||
[h5 Comments]
|
||||
|
||||
`(?# ... )` is treated as a comment, it's contents are ignored.
|
||||
=(?# ... )= is treated as a comment, it's contents are ignored.
|
||||
|
||||
[h5 Modifiers]
|
||||
|
||||
`(?imsx-imsx ... )` alters which of the perl modifiers are in effect within
|
||||
=(?imsx-imsx ... )= alters which of the perl modifiers are in effect within
|
||||
the pattern, changes take effect from the point that the block is first seen
|
||||
and extend to any enclosing `)`. Letters before a '-' turn that perl
|
||||
and extend to any enclosing =)=. Letters before a '-' turn that perl
|
||||
modifier on, letters afterward, turn it off.
|
||||
|
||||
`(?imsx-imsx:pattern)` applies the specified modifiers to pattern only.
|
||||
=(?imsx-imsx:pattern)= applies the specified modifiers to pattern only.
|
||||
|
||||
[h5 Non-marking groups]
|
||||
|
||||
`(?:pattern)` lexically groups pattern, without generating an additional
|
||||
=(?:pattern)= lexically groups pattern, without generating an additional
|
||||
sub-expression.
|
||||
|
||||
[h5 Branch reset]
|
||||
|
||||
=(?|pattern)= resets the subexpression count at the start of each "|" alternative within /pattern/.
|
||||
|
||||
The sub-expression count following this construct is that of whichever branch had the largest number of
|
||||
sub-expressions. This construct is useful when you want to capture one of a number of alternative matches
|
||||
in a single sub-expression index.
|
||||
|
||||
In the following example the index of each sub-expression is shown below the expression:
|
||||
|
||||
[pre
|
||||
# before ---------------branch-reset----------- after
|
||||
/ ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) ) ( z ) /x
|
||||
# 1 2 2 3 2 3 4
|
||||
]
|
||||
|
||||
[h5 Lookahead]
|
||||
|
||||
`(?=pattern)` consumes zero characters, only if pattern matches.
|
||||
[^(?=pattern)] consumes zero characters, only if pattern matches.
|
||||
|
||||
`(?!pattern)` consumes zero characters, only if pattern does not match.
|
||||
=(?!pattern)= consumes zero characters, only if pattern does not match.
|
||||
|
||||
Lookahead is typically used to create the logical AND of two regular
|
||||
expressions, for example if a password must contain a lower case letter,
|
||||
@ -414,17 +495,17 @@ could be used to validate the password.
|
||||
|
||||
[h5 Lookbehind]
|
||||
|
||||
`(?<=pattern)` consumes zero characters, only if pattern could be matched
|
||||
[^(?<=pattern)] consumes zero characters, only if pattern could be matched
|
||||
against the characters preceding the current position (pattern must be
|
||||
of fixed length).
|
||||
|
||||
`(?<!pattern)` consumes zero characters, only if pattern could not be
|
||||
=(?<!pattern)= consumes zero characters, only if pattern could not be
|
||||
matched against the characters preceding the current position (pattern must
|
||||
be of fixed length).
|
||||
|
||||
[h5 Independent sub-expressions]
|
||||
|
||||
`(?>pattern)` /pattern/ is matched independently of the surrounding patterns,
|
||||
=(?>pattern)= /pattern/ is matched independently of the surrounding patterns,
|
||||
the expression will never backtrack into /pattern/. Independent sub-expressions
|
||||
are typically used to improve performance; only the best possible match
|
||||
for pattern will be considered, if this doesn't allow the expression as a
|
||||
@ -432,10 +513,10 @@ whole to match then no match is found at all.
|
||||
|
||||
[h5 Conditional Expressions]
|
||||
|
||||
`(?(condition)yes-pattern|no-pattern)` attempts to match /yes-pattern/ if
|
||||
=(?(condition)yes-pattern|no-pattern)= attempts to match /yes-pattern/ if
|
||||
the /condition/ is true, otherwise attempts to match /no-pattern/.
|
||||
|
||||
`(?(condition)yes-pattern)` attempts to match /yes-pattern/ if the /condition/
|
||||
=(?(condition)yes-pattern)= attempts to match /yes-pattern/ if the /condition/
|
||||
is true, otherwise fails.
|
||||
|
||||
/condition/ may be either a forward lookahead assert, or the index of
|
||||
@ -447,10 +528,10 @@ has been matched).
|
||||
The order of precedence for of operators is as follows:
|
||||
|
||||
# Collation-related bracket symbols `[==] [::] [..]`
|
||||
# Escaped characters `\`
|
||||
# Escaped characters =\=
|
||||
# Character set (bracket expression) `[]`
|
||||
# Grouping `()`
|
||||
# Single-character-ERE duplication `* + ? {m,n}`
|
||||
# Grouping =()=
|
||||
# Single-character-ERE duplication =* + ? {m,n}=
|
||||
# Concatenation
|
||||
# Anchoring ^$
|
||||
# Alternation |
|
||||
@ -469,42 +550,42 @@ with individual elements matched as follows;
|
||||
|
||||
[table
|
||||
[[Construct][What gets matched]]
|
||||
[[`AtomA AtomB`][Locates the best match for /AtomA/ that has a following match for /AtomB/.]]
|
||||
[[`Expression1 | Expression2`][If /Expresion1/ can be matched then returns that match,
|
||||
[[=AtomA AtomB=][Locates the best match for /AtomA/ that has a following match for /AtomB/.]]
|
||||
[[=Expression1 | Expression2=][If /Expresion1/ can be matched then returns that match,
|
||||
otherwise attempts to match /Expression2/.]]
|
||||
[[`S{N}`][Matches /S/ repeated exactly N times.]]
|
||||
[[`S{N,M}`][Matches S repeated between N and M times, and as many times as possible.]]
|
||||
[[`S{N,M}?`][Matches S repeated between N and M times, and as few times as possible.]]
|
||||
[[`S?, S*, S+`][The same as `S{0,1}`, `S{0,UINT_MAX}`, `S{1,UINT_MAX}` respectively.]]
|
||||
[[`S??, S*?, S+?`][The same as `S{0,1}?`, `S{0,UINT_MAX}?`, `S{1,UINT_MAX}?` respectively.]]
|
||||
[[`(?>S)`][Matches the best match for /S/, and only that.]]
|
||||
[[`(?=S), (?<=S)`][Matches only the best match for /S/ (this is only
|
||||
[[=S{N}=][Matches /S/ repeated exactly N times.]]
|
||||
[[=S{N,M}=][Matches S repeated between N and M times, and as many times as possible.]]
|
||||
[[=S{N,M}?=][Matches S repeated between N and M times, and as few times as possible.]]
|
||||
[[=S?, S*, S+=][The same as =S{0,1}=, =S{0,UINT_MAX}=, =S{1,UINT_MAX}= respectively.]]
|
||||
[[=S??, S*?, S+?=][The same as =S{0,1}?=, =S{0,UINT_MAX}?=, =S{1,UINT_MAX}?= respectively.]]
|
||||
[[=(?>S)=][Matches the best match for /S/, and only that.]]
|
||||
[[[^(?=S), (?<=S)]][Matches only the best match for /S/ (this is only
|
||||
visible if there are capturing parenthesis within /S/).]]
|
||||
[[`(?!S), (?<!S)`][Considers only whether a match for S exists or not.]]
|
||||
[[`(?(condition)yes-pattern | no-pattern)`][If condition is true, then
|
||||
[[=(?!S), (?<!S)=][Considers only whether a match for S exists or not.]]
|
||||
[[=(?(condition)yes-pattern | no-pattern)=][If condition is true, then
|
||||
only yes-pattern is considered, otherwise only no-pattern is considered.]]
|
||||
]
|
||||
|
||||
[h3 Variations]
|
||||
|
||||
The [link boost_regex.ref.syntax_option_type.syntax_option_type_perl options `normal`,
|
||||
`ECMAScript`, `JavaScript` and `JScript`] are all synonyms for
|
||||
`perl`.
|
||||
The [link boost_regex.ref.syntax_option_type.syntax_option_type_perl options =normal=,
|
||||
=ECMAScript=, =JavaScript= and =JScript=] are all synonyms for
|
||||
=perl=.
|
||||
|
||||
[h3 Options]
|
||||
|
||||
There are a [link boost_regex.ref.syntax_option_type.syntax_option_type_perl
|
||||
variety of flags] that may be combined with the `perl` option when
|
||||
variety of flags] that may be combined with the =perl= option when
|
||||
constructing the regular expression, in particular note that the
|
||||
`newline_alt` option alters the syntax, while the `collate`, `nosubs` and
|
||||
`icase` options modify how the case and locale sensitivity are to be applied.
|
||||
=newline_alt= option alters the syntax, while the =collate=, =nosubs= and
|
||||
=icase= options modify how the case and locale sensitivity are to be applied.
|
||||
|
||||
[h3 Pattern Modifiers]
|
||||
|
||||
The perl `smix` modifiers can either be applied using a `(?smix-smix)`
|
||||
The perl =smix= modifiers can either be applied using a =(?smix-smix)=
|
||||
prefix to the regular expression, or with one of the
|
||||
[link boost_regex.ref.syntax_option_type.syntax_option_type_perl regex-compile time
|
||||
flags `no_mod_m`, `mod_x`, `mod_s`, and `no_mod_s`].
|
||||
flags =no_mod_m=, =mod_x=, =mod_s=, and =no_mod_s=].
|
||||
|
||||
[h3 References]
|
||||
|
||||
|
@ -844,6 +844,42 @@ struct BoostRegexConcept
|
||||
m_string = m_char + m_sub;
|
||||
ignore_unused_variable_warning(m_string);
|
||||
|
||||
// Named sub-expressions:
|
||||
m_sub = m_cresults[&m_char];
|
||||
ignore_unused_variable_warning(m_sub);
|
||||
m_sub = m_cresults[m_string];
|
||||
ignore_unused_variable_warning(m_sub);
|
||||
m_sub = m_cresults[""];
|
||||
ignore_unused_variable_warning(m_sub);
|
||||
m_sub = m_cresults[std::string("")];
|
||||
ignore_unused_variable_warning(m_sub);
|
||||
m_string = m_cresults.str(&m_char);
|
||||
ignore_unused_variable_warning(m_string);
|
||||
m_string = m_cresults.str(m_string);
|
||||
ignore_unused_variable_warning(m_string);
|
||||
m_string = m_cresults.str("");
|
||||
ignore_unused_variable_warning(m_string);
|
||||
m_string = m_cresults.str(std::string(""));
|
||||
ignore_unused_variable_warning(m_string);
|
||||
|
||||
typename match_results_type::difference_type diff;
|
||||
diff = m_cresults.length(&m_char);
|
||||
ignore_unused_variable_warning(diff);
|
||||
diff = m_cresults.length(m_string);
|
||||
ignore_unused_variable_warning(diff);
|
||||
diff = m_cresults.length("");
|
||||
ignore_unused_variable_warning(diff);
|
||||
diff = m_cresults.length(std::string(""));
|
||||
ignore_unused_variable_warning(diff);
|
||||
diff = m_cresults.position(&m_char);
|
||||
ignore_unused_variable_warning(diff);
|
||||
diff = m_cresults.position(m_string);
|
||||
ignore_unused_variable_warning(diff);
|
||||
diff = m_cresults.position("");
|
||||
ignore_unused_variable_warning(diff);
|
||||
diff = m_cresults.position(std::string(""));
|
||||
ignore_unused_variable_warning(diff);
|
||||
|
||||
#ifndef BOOST_NO_STD_LOCALE
|
||||
m_stream << m_sub;
|
||||
m_stream << m_cresults;
|
||||
|
@ -184,7 +184,9 @@ private:
|
||||
offset_underscore = U_CHAR_CATEGORY_COUNT+3,
|
||||
offset_unicode = U_CHAR_CATEGORY_COUNT+4,
|
||||
offset_any = U_CHAR_CATEGORY_COUNT+5,
|
||||
offset_ascii = U_CHAR_CATEGORY_COUNT+6
|
||||
offset_ascii = U_CHAR_CATEGORY_COUNT+6,
|
||||
offset_horizontal = U_CHAR_CATEGORY_COUNT+7,
|
||||
offset_vertical = U_CHAR_CATEGORY_COUNT+8
|
||||
};
|
||||
|
||||
//
|
||||
@ -197,6 +199,8 @@ private:
|
||||
static const char_class_type mask_unicode;
|
||||
static const char_class_type mask_any;
|
||||
static const char_class_type mask_ascii;
|
||||
static const char_class_type mask_horizontal;
|
||||
static const char_class_type mask_vertical;
|
||||
|
||||
static char_class_type lookup_icu_mask(const ::UChar32* p1, const ::UChar32* p2);
|
||||
|
||||
|
@ -19,6 +19,8 @@
|
||||
#ifndef BOOST_REGEX_V4_BASIC_REGEX_HPP
|
||||
#define BOOST_REGEX_V4_BASIC_REGEX_HPP
|
||||
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
#ifdef BOOST_MSVC
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4103)
|
||||
@ -44,12 +46,127 @@ namespace re_detail{
|
||||
template <class charT, class traits>
|
||||
class basic_regex_parser;
|
||||
|
||||
template <class I>
|
||||
void bubble_down_one(I first, I last)
|
||||
{
|
||||
if(first != last)
|
||||
{
|
||||
I next = last - 1;
|
||||
while((next != first) && !(*(next-1) < *next))
|
||||
{
|
||||
(next-1)->swap(*next);
|
||||
--next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Class named_subexpressions
|
||||
// Contains information about named subexpressions within the regex.
|
||||
//
|
||||
template <class charT>
|
||||
class named_subexpressions_base
|
||||
{
|
||||
public:
|
||||
virtual int get_id(const charT* i, const charT* j) = 0;
|
||||
#ifdef __GNUC__
|
||||
// warning supression:
|
||||
virtual ~named_subexpressions_base(){}
|
||||
#endif
|
||||
};
|
||||
|
||||
template <class charT>
|
||||
class named_subexpressions : public named_subexpressions_base<charT>
|
||||
{
|
||||
struct name
|
||||
{
|
||||
name(const charT* i, const charT* j, int idx)
|
||||
: n(i, j), index(idx) {}
|
||||
std::vector<charT> n;
|
||||
int index;
|
||||
bool operator < (const name& other)const
|
||||
{
|
||||
return std::lexicographical_compare(n.begin(), n.end(), other.n.begin(), other.n.end());
|
||||
}
|
||||
bool operator == (const name& other)const
|
||||
{
|
||||
return n == other.n;
|
||||
}
|
||||
void swap(name& other)
|
||||
{
|
||||
n.swap(other.n);
|
||||
std::swap(index, other.index);
|
||||
}
|
||||
};
|
||||
public:
|
||||
named_subexpressions(){}
|
||||
void set_name(const charT* i, const charT* j, int index)
|
||||
{
|
||||
m_sub_names.push_back(name(i, j, index));
|
||||
bubble_down_one(m_sub_names.begin(), m_sub_names.end());
|
||||
}
|
||||
int get_id(const charT* i, const charT* j)
|
||||
{
|
||||
name t(i, j, 0);
|
||||
typename std::vector<name>::const_iterator pos = std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
|
||||
if((pos != m_sub_names.end()) && (*pos == t))
|
||||
{
|
||||
return pos->index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
private:
|
||||
std::vector<name> m_sub_names;
|
||||
};
|
||||
|
||||
template <class charT, class Other>
|
||||
class named_subexpressions_converter : public named_subexpressions_base<charT>
|
||||
{
|
||||
boost::shared_ptr<named_subexpressions<Other> > m_converter;
|
||||
public:
|
||||
named_subexpressions_converter(boost::shared_ptr<named_subexpressions<Other> > s)
|
||||
: m_converter(s) {}
|
||||
virtual int get_id(const charT* i, const charT* j)
|
||||
{
|
||||
if(i == j)
|
||||
return -1;
|
||||
std::vector<Other> v;
|
||||
while(i != j)
|
||||
{
|
||||
v.push_back(*i);
|
||||
++i;
|
||||
}
|
||||
return m_converter->get_id(&v[0], &v[0] + v.size());
|
||||
}
|
||||
};
|
||||
|
||||
template <class To>
|
||||
inline boost::shared_ptr<named_subexpressions_base<To> > convert_to_named_subs_imp(
|
||||
boost::shared_ptr<named_subexpressions<To> > s,
|
||||
boost::integral_constant<bool,true> const&)
|
||||
{
|
||||
return s;
|
||||
}
|
||||
template <class To, class From>
|
||||
inline boost::shared_ptr<named_subexpressions_base<To> > convert_to_named_subs_imp(
|
||||
boost::shared_ptr<named_subexpressions<From> > s,
|
||||
boost::integral_constant<bool,false> const&)
|
||||
{
|
||||
return boost::shared_ptr<named_subexpressions_converter<To, From> >(new named_subexpressions_converter<To, From>(s));
|
||||
}
|
||||
template <class To, class From>
|
||||
inline boost::shared_ptr<named_subexpressions_base<To> > convert_to_named_subs(
|
||||
boost::shared_ptr<named_subexpressions<From> > s)
|
||||
{
|
||||
typedef typename boost::is_same<To, From>::type tag_type;
|
||||
return convert_to_named_subs_imp<To>(s, tag_type());
|
||||
}
|
||||
//
|
||||
// class regex_data:
|
||||
// represents the data we wish to expose to the matching algorithms.
|
||||
//
|
||||
template <class charT, class traits>
|
||||
struct regex_data
|
||||
struct regex_data : public named_subexpressions<charT>
|
||||
{
|
||||
typedef regex_constants::syntax_option_type flag_type;
|
||||
typedef std::size_t size_type;
|
||||
@ -520,6 +637,10 @@ public:
|
||||
BOOST_ASSERT(0 != m_pimpl.get());
|
||||
return m_pimpl->get_data();
|
||||
}
|
||||
boost::shared_ptr<re_detail::named_subexpressions<charT> > get_named_subs()const
|
||||
{
|
||||
return m_pimpl;
|
||||
}
|
||||
|
||||
private:
|
||||
shared_ptr<re_detail::basic_regex_implementation<charT, traits> > m_pimpl;
|
||||
|
@ -78,6 +78,8 @@ private:
|
||||
const charT* m_end; // the end of the string being parsed
|
||||
const charT* m_position; // our current parser position
|
||||
unsigned m_mark_count; // how many sub-expressions we have
|
||||
int m_mark_reset; // used to indicate that we're inside a (?|...) block.
|
||||
unsigned m_max_mark; // largest mark count seen inside a (?|...) block.
|
||||
std::ptrdiff_t m_paren_start; // where the last seen ')' began (where repeats are inserted).
|
||||
std::ptrdiff_t m_alt_insert_point; // where to insert the next alternative
|
||||
bool m_has_case_change; // true if somewhere in the current block the case has changed
|
||||
@ -96,7 +98,7 @@ private:
|
||||
|
||||
template <class charT, class traits>
|
||||
basic_regex_parser<charT, traits>::basic_regex_parser(regex_data<charT, traits>* data)
|
||||
: basic_regex_creator<charT, traits>(data), m_mark_count(0), m_paren_start(0), m_alt_insert_point(0), m_has_case_change(false)
|
||||
: basic_regex_creator<charT, traits>(data), m_mark_count(0), m_mark_reset(-1), m_max_mark(0), m_paren_start(0), m_alt_insert_point(0), m_has_case_change(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -610,6 +612,7 @@ bool basic_regex_parser<charT, traits>::parse_extended_escape()
|
||||
// fall through:
|
||||
case regex_constants::escape_type_class:
|
||||
{
|
||||
escape_type_class_jump:
|
||||
typedef typename traits::char_class_type mask_type;
|
||||
mask_type m = this->m_traits.lookup_classname(m_position, m_position+1);
|
||||
if(m != 0)
|
||||
@ -719,7 +722,102 @@ bool basic_regex_parser<charT, traits>::parse_extended_escape()
|
||||
return true;
|
||||
}
|
||||
fail(regex_constants::error_ctype, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
case regex_constants::escape_type_reset_start_mark:
|
||||
if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
|
||||
{
|
||||
re_brace* pb = static_cast<re_brace*>(this->append_state(syntax_element_startmark, sizeof(re_brace)));
|
||||
pb->index = -5;
|
||||
this->m_pdata->m_data.align();
|
||||
++m_position;
|
||||
return true;
|
||||
}
|
||||
goto escape_type_class_jump;
|
||||
case regex_constants::escape_type_line_ending:
|
||||
if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
|
||||
{
|
||||
const charT* e = get_escape_R_string<charT>();
|
||||
const charT* old_position = m_position;
|
||||
const charT* old_end = m_end;
|
||||
const charT* old_base = m_base;
|
||||
m_position = e;
|
||||
m_base = e;
|
||||
m_end = e + traits::length(e);
|
||||
bool r = parse_all();
|
||||
m_position = ++old_position;
|
||||
m_end = old_end;
|
||||
m_base = old_base;
|
||||
return r;
|
||||
}
|
||||
goto escape_type_class_jump;
|
||||
case regex_constants::escape_type_extended_backref:
|
||||
if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
|
||||
{
|
||||
bool have_brace = false;
|
||||
bool negative = false;
|
||||
if(++m_position == m_end)
|
||||
{
|
||||
fail(regex_constants::error_escape, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
// maybe have \g{ddd}
|
||||
if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_open_brace)
|
||||
{
|
||||
if(++m_position == m_end)
|
||||
{
|
||||
fail(regex_constants::error_escape, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
have_brace = true;
|
||||
}
|
||||
negative = (*m_position == static_cast<charT>('-'));
|
||||
if((negative) && (++m_position == m_end))
|
||||
{
|
||||
fail(regex_constants::error_escape, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
const charT* pc = m_position;
|
||||
int i = this->m_traits.toi(pc, m_end, 10);
|
||||
if(i < 0)
|
||||
{
|
||||
// Check for a named capture:
|
||||
const charT* base = m_position;
|
||||
while((m_position != m_end) && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
|
||||
++m_position;
|
||||
i = this->m_pdata->get_id(base, m_position);
|
||||
pc = m_position;
|
||||
}
|
||||
if(negative)
|
||||
i = 1 + m_mark_count - i;
|
||||
if((i > 0) && (this->m_backrefs & (1u << (i-1))))
|
||||
{
|
||||
m_position = pc;
|
||||
re_brace* pb = static_cast<re_brace*>(this->append_state(syntax_element_backref, sizeof(re_brace)));
|
||||
pb->index = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
fail(regex_constants::error_backref, m_position - m_end);
|
||||
return false;
|
||||
}
|
||||
m_position = pc;
|
||||
if(have_brace)
|
||||
{
|
||||
if((m_position == m_end) || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
|
||||
{
|
||||
fail(regex_constants::error_escape, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
++m_position;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
goto escape_type_class_jump;
|
||||
case regex_constants::escape_type_control_v:
|
||||
if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
|
||||
goto escape_type_class_jump;
|
||||
// fallthrough:
|
||||
default:
|
||||
this->append_literal(unescape_character());
|
||||
break;
|
||||
@ -747,6 +845,7 @@ template <class charT, class traits>
|
||||
bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_t high)
|
||||
{
|
||||
bool greedy = true;
|
||||
bool pocessive = false;
|
||||
std::size_t insert_point;
|
||||
//
|
||||
// when we get to here we may have a non-greedy ? mark still to come:
|
||||
@ -758,12 +857,19 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_
|
||||
)
|
||||
)
|
||||
{
|
||||
// OK we have a perl regex, check for a '?':
|
||||
// OK we have a perl or emacs regex, check for a '?':
|
||||
if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_question)
|
||||
{
|
||||
greedy = false;
|
||||
++m_position;
|
||||
}
|
||||
// for perl regexes only check for pocessive ++ repeats.
|
||||
if((0 == (this->flags() & regbase::main_option_type))
|
||||
&& (this->m_traits.syntax_type(*m_position) == regex_constants::syntax_plus))
|
||||
{
|
||||
pocessive = true;
|
||||
++m_position;
|
||||
}
|
||||
}
|
||||
if(0 == this->m_last_state)
|
||||
{
|
||||
@ -832,6 +938,20 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_
|
||||
// now fill in the alt jump for the repeat:
|
||||
rep = static_cast<re_repeat*>(this->getaddress(rep_off));
|
||||
rep->alt.i = this->m_pdata->m_data.size() - rep_off;
|
||||
//
|
||||
// If the repeat is pocessive then bracket the repeat with a (?>...)
|
||||
// independent sub-expression construct:
|
||||
//
|
||||
if(pocessive)
|
||||
{
|
||||
re_brace* pb = static_cast<re_brace*>(this->insert_state(insert_point, syntax_element_startmark, sizeof(re_brace)));
|
||||
pb->index = -3;
|
||||
re_jump* jmp = static_cast<re_jump*>(this->insert_state(insert_point + sizeof(re_brace), syntax_element_jump, sizeof(re_jump)));
|
||||
this->m_pdata->m_data.align();
|
||||
jmp->alt.i = this->m_pdata->m_data.size() - this->getoffset(jmp);
|
||||
pb = static_cast<re_brace*>(this->append_state(syntax_element_endmark, sizeof(re_brace)));
|
||||
pb->index = -3;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -954,6 +1074,14 @@ bool basic_regex_parser<charT, traits>::parse_alt()
|
||||
fail(regex_constants::error_empty, this->m_position - this->m_base);
|
||||
return false;
|
||||
}
|
||||
//
|
||||
// Reset mark count if required:
|
||||
//
|
||||
if(m_max_mark < m_mark_count)
|
||||
m_max_mark = m_mark_count;
|
||||
if(m_mark_reset >= 0)
|
||||
m_mark_count = m_mark_reset;
|
||||
|
||||
++m_position;
|
||||
//
|
||||
// we need to append a trailing jump:
|
||||
@ -1472,7 +1600,7 @@ charT basic_regex_parser<charT, traits>::unescape_character()
|
||||
int i = this->m_traits.toi(m_position, m_end, 16);
|
||||
if((m_position == m_end)
|
||||
|| (i < 0)
|
||||
|| ((std::numeric_limits<charT>::is_specialized) && (charT(i) > (std::numeric_limits<charT>::max)()))
|
||||
|| ((std::numeric_limits<charT>::is_specialized) && (i > (int)(std::numeric_limits<charT>::max)()))
|
||||
|| (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
|
||||
{
|
||||
fail(regex_constants::error_badbrace, m_position - m_base);
|
||||
@ -1675,11 +1803,17 @@ bool basic_regex_parser<charT, traits>::parse_perl_extension()
|
||||
regex_constants::syntax_option_type old_flags = this->flags();
|
||||
bool old_case_change = m_has_case_change;
|
||||
m_has_case_change = false;
|
||||
charT name_delim;
|
||||
int mark_reset = m_mark_reset;
|
||||
m_mark_reset = -1;
|
||||
//
|
||||
// select the actual extension used:
|
||||
//
|
||||
switch(this->m_traits.syntax_type(*m_position))
|
||||
{
|
||||
case regex_constants::syntax_or:
|
||||
m_mark_reset = m_mark_count;
|
||||
// fall through:
|
||||
case regex_constants::syntax_colon:
|
||||
//
|
||||
// a non-capturing mark:
|
||||
@ -1716,8 +1850,10 @@ bool basic_regex_parser<charT, traits>::parse_perl_extension()
|
||||
pb->index = markid = -1;
|
||||
else
|
||||
{
|
||||
fail(regex_constants::error_badrepeat, m_position - m_base);
|
||||
return false;
|
||||
// Probably a named capture which also starts (?< :
|
||||
name_delim = '>';
|
||||
--m_position;
|
||||
goto named_capture_jump;
|
||||
}
|
||||
++m_position;
|
||||
jump_offset = this->getoffset(this->append_state(syntax_element_jump, sizeof(re_jump)));
|
||||
@ -1794,7 +1930,7 @@ bool basic_regex_parser<charT, traits>::parse_perl_extension()
|
||||
if((this->m_traits.syntax_type(*m_position) != regex_constants::syntax_equal)
|
||||
&& (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_not))
|
||||
{
|
||||
fail(regex_constants::error_badrepeat, m_position - m_base);
|
||||
fail(regex_constants::error_paren, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
m_position -= 2;
|
||||
@ -1805,6 +1941,40 @@ bool basic_regex_parser<charT, traits>::parse_perl_extension()
|
||||
case regex_constants::syntax_close_mark:
|
||||
fail(regex_constants::error_badrepeat, m_position - m_base);
|
||||
return false;
|
||||
case regex_constants::escape_type_end_buffer:
|
||||
{
|
||||
name_delim = *m_position;
|
||||
named_capture_jump:
|
||||
markid = 0;
|
||||
if(0 == (this->flags() & regbase::nosubs))
|
||||
{
|
||||
markid = ++m_mark_count;
|
||||
#ifndef BOOST_NO_STD_DISTANCE
|
||||
if(this->flags() & regbase::save_subexpression_location)
|
||||
this->m_pdata->m_subs.push_back(std::pair<std::size_t, std::size_t>(std::distance(m_base, m_position) - 2, 0));
|
||||
#else
|
||||
if(this->flags() & regbase::save_subexpression_location)
|
||||
this->m_pdata->m_subs.push_back(std::pair<std::size_t, std::size_t>((m_position - m_base) - 2, 0));
|
||||
#endif
|
||||
}
|
||||
pb->index = markid;
|
||||
const charT* base = ++m_position;
|
||||
if(m_position == m_end)
|
||||
{
|
||||
fail(regex_constants::error_paren, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
while((m_position != m_end) && (*m_position != name_delim))
|
||||
++m_position;
|
||||
if(m_position == m_end)
|
||||
{
|
||||
fail(regex_constants::error_paren, m_position - m_base);
|
||||
return false;
|
||||
}
|
||||
this->m_pdata->set_name(base, m_position, markid);
|
||||
++m_position;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
//
|
||||
// lets assume that we have a (?imsx) group and try and parse it:
|
||||
@ -1934,6 +2104,31 @@ bool basic_regex_parser<charT, traits>::parse_perl_extension()
|
||||
// and the case change data:
|
||||
//
|
||||
m_has_case_change = old_case_change;
|
||||
//
|
||||
// And the mark_reset data:
|
||||
//
|
||||
if(m_max_mark > m_mark_count)
|
||||
{
|
||||
m_mark_count = m_max_mark;
|
||||
}
|
||||
m_mark_reset = mark_reset;
|
||||
|
||||
|
||||
if(markid > 0)
|
||||
{
|
||||
#ifndef BOOST_NO_STD_DISTANCE
|
||||
if(this->flags() & regbase::save_subexpression_location)
|
||||
this->m_pdata->m_subs.at(markid - 1).second = std::distance(m_base, m_position) - 1;
|
||||
#else
|
||||
if(this->flags() & regbase::save_subexpression_location)
|
||||
this->m_pdata->m_subs.at(markid - 1).second = (m_position - m_base) - 1;
|
||||
#endif
|
||||
//
|
||||
// allow backrefs to this mark:
|
||||
//
|
||||
if((markid > 0) && (markid < (int)(sizeof(unsigned) * CHAR_BIT)))
|
||||
this->m_backrefs |= 1u << (markid - 1);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -394,7 +394,9 @@ enum
|
||||
char_class_graph=char_class_alnum|char_class_punct,
|
||||
char_class_blank=1<<9,
|
||||
char_class_word=1<<10,
|
||||
char_class_unicode=1<<11
|
||||
char_class_unicode=1<<11,
|
||||
char_class_horizontal_space=1<<12,
|
||||
char_class_vertical_space=1<<13
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -413,6 +415,8 @@ public:
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_blank = 1u << 24);
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_word = 1u << 25);
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_unicode = 1u << 26);
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_horizontal = 1u << 27);
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_vertical = 1u << 28);
|
||||
#endif
|
||||
|
||||
typedef std::basic_string<charT> string_type;
|
||||
@ -477,6 +481,10 @@ template <class charT>
|
||||
typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_word;
|
||||
template <class charT>
|
||||
typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_unicode;
|
||||
template <class charT>
|
||||
typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_vertical;
|
||||
template <class charT>
|
||||
typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_horizontal;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@ -688,18 +696,20 @@ void cpp_regex_traits_implementation<charT>::init()
|
||||
// Custom class names:
|
||||
//
|
||||
#ifndef BOOST_REGEX_BUGGY_CTYPE_FACET
|
||||
static const char_class_type masks[14] =
|
||||
static const char_class_type masks[16] =
|
||||
{
|
||||
std::ctype<charT>::alnum,
|
||||
std::ctype<charT>::alpha,
|
||||
std::ctype<charT>::cntrl,
|
||||
std::ctype<charT>::digit,
|
||||
std::ctype<charT>::graph,
|
||||
cpp_regex_traits_implementation<charT>::mask_horizontal,
|
||||
std::ctype<charT>::lower,
|
||||
std::ctype<charT>::print,
|
||||
std::ctype<charT>::punct,
|
||||
std::ctype<charT>::space,
|
||||
std::ctype<charT>::upper,
|
||||
cpp_regex_traits_implementation<charT>::mask_vertical,
|
||||
std::ctype<charT>::xdigit,
|
||||
cpp_regex_traits_implementation<charT>::mask_blank,
|
||||
cpp_regex_traits_implementation<charT>::mask_word,
|
||||
@ -713,11 +723,13 @@ void cpp_regex_traits_implementation<charT>::init()
|
||||
::boost::re_detail::char_class_cntrl,
|
||||
::boost::re_detail::char_class_digit,
|
||||
::boost::re_detail::char_class_graph,
|
||||
::boost::re_detail::char_class_horizontal_space,
|
||||
::boost::re_detail::char_class_lower,
|
||||
::boost::re_detail::char_class_print,
|
||||
::boost::re_detail::char_class_punct,
|
||||
::boost::re_detail::char_class_space,
|
||||
::boost::re_detail::char_class_upper,
|
||||
::boost::re_detail::char_class_vertical_space,
|
||||
::boost::re_detail::char_class_xdigit,
|
||||
::boost::re_detail::char_class_blank,
|
||||
::boost::re_detail::char_class_word,
|
||||
@ -744,7 +756,7 @@ typename cpp_regex_traits_implementation<charT>::char_class_type
|
||||
cpp_regex_traits_implementation<charT>::lookup_classname_imp(const charT* p1, const charT* p2) const
|
||||
{
|
||||
#ifndef BOOST_REGEX_BUGGY_CTYPE_FACET
|
||||
static const char_class_type masks[20] =
|
||||
static const char_class_type masks[22] =
|
||||
{
|
||||
0,
|
||||
std::ctype<char>::alnum,
|
||||
@ -754,6 +766,7 @@ typename cpp_regex_traits_implementation<charT>::char_class_type
|
||||
std::ctype<char>::digit,
|
||||
std::ctype<char>::digit,
|
||||
std::ctype<char>::graph,
|
||||
cpp_regex_traits_implementation<charT>::mask_horizontal,
|
||||
std::ctype<char>::lower,
|
||||
std::ctype<char>::lower,
|
||||
std::ctype<char>::print,
|
||||
@ -763,12 +776,13 @@ typename cpp_regex_traits_implementation<charT>::char_class_type
|
||||
std::ctype<char>::upper,
|
||||
cpp_regex_traits_implementation<charT>::mask_unicode,
|
||||
std::ctype<char>::upper,
|
||||
cpp_regex_traits_implementation<charT>::mask_vertical,
|
||||
std::ctype<char>::alnum | cpp_regex_traits_implementation<charT>::mask_word,
|
||||
std::ctype<char>::alnum | cpp_regex_traits_implementation<charT>::mask_word,
|
||||
std::ctype<char>::xdigit,
|
||||
};
|
||||
#else
|
||||
static const char_class_type masks[20] =
|
||||
static const char_class_type masks[22] =
|
||||
{
|
||||
0,
|
||||
::boost::re_detail::char_class_alnum,
|
||||
@ -778,6 +792,7 @@ typename cpp_regex_traits_implementation<charT>::char_class_type
|
||||
::boost::re_detail::char_class_digit,
|
||||
::boost::re_detail::char_class_digit,
|
||||
::boost::re_detail::char_class_graph,
|
||||
::boost::re_detail::char_class_horizontal_space,
|
||||
::boost::re_detail::char_class_lower,
|
||||
::boost::re_detail::char_class_lower,
|
||||
::boost::re_detail::char_class_print,
|
||||
@ -787,6 +802,7 @@ typename cpp_regex_traits_implementation<charT>::char_class_type
|
||||
::boost::re_detail::char_class_upper,
|
||||
::boost::re_detail::char_class_unicode,
|
||||
::boost::re_detail::char_class_upper,
|
||||
::boost::re_detail::char_class_vertical_space,
|
||||
::boost::re_detail::char_class_alnum | ::boost::re_detail::char_class_word,
|
||||
::boost::re_detail::char_class_alnum | ::boost::re_detail::char_class_word,
|
||||
::boost::re_detail::char_class_xdigit,
|
||||
@ -820,7 +836,9 @@ bool cpp_regex_traits_implementation<charT>::isctype(const charT c, char_class_t
|
||||
|| ((mask & ::boost::re_detail::char_class_xdigit) && (m_pctype->is(std::ctype<charT>::xdigit, c)))
|
||||
|| ((mask & ::boost::re_detail::char_class_blank) && (m_pctype->is(std::ctype<charT>::space, c)) && !::boost::re_detail::is_separator(c))
|
||||
|| ((mask & ::boost::re_detail::char_class_word) && (c == '_'))
|
||||
|| ((mask & ::boost::re_detail::char_class_unicode) && ::boost::re_detail::is_extended(c));
|
||||
|| ((mask & ::boost::re_detail::char_class_unicode) && ::boost::re_detail::is_extended(c))
|
||||
|| ((mask & ::boost::re_detail::char_class_vertical) && (is_separator(c) || (c == '\v')))
|
||||
|| ((mask & ::boost::re_detail::char_class_horizontal) && m_pctype->is(std::ctype<charT>::space, c) && !(is_separator(c) || (c == '\v')));
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -930,6 +948,12 @@ public:
|
||||
&& m_pimpl->m_pctype->is(std::ctype<charT>::space, c)
|
||||
&& !re_detail::is_separator(c))
|
||||
return true;
|
||||
else if((f & re_detail::cpp_regex_traits_implementation<charT>::mask_vertical)
|
||||
&& (::boost::re_detail::is_separator(c) || (c == '\v')))
|
||||
return true;
|
||||
else if((f & re_detail::cpp_regex_traits_implementation<charT>::mask_horizontal)
|
||||
&& this->isctype(c, std::ctype<charT>::space) && !this->isctype(c, re_detail::cpp_regex_traits_implementation<charT>::mask_vertical))
|
||||
return true;
|
||||
return false;
|
||||
#else
|
||||
return m_pimpl->isctype(c, f);
|
||||
|
@ -36,6 +36,13 @@ namespace boost{
|
||||
#pragma warning(disable : 4251 4231 4660)
|
||||
#endif
|
||||
|
||||
namespace re_detail{
|
||||
|
||||
template <class charT>
|
||||
class named_subexpressions;
|
||||
|
||||
}
|
||||
|
||||
template <class BidiIterator, class Allocator>
|
||||
class match_results
|
||||
{
|
||||
@ -62,13 +69,14 @@ public:
|
||||
typedef typename re_detail::regex_iterator_traits<
|
||||
BidiIterator>::value_type char_type;
|
||||
typedef std::basic_string<char_type> string_type;
|
||||
typedef re_detail::named_subexpressions_base<char_type> named_sub_type;
|
||||
|
||||
// construct/copy/destroy:
|
||||
explicit match_results(const Allocator& a = Allocator())
|
||||
#ifndef BOOST_NO_STD_ALLOCATOR
|
||||
: m_subs(a), m_base() {}
|
||||
: m_subs(a), m_base(), m_last_closed_paren(0) {}
|
||||
#else
|
||||
: m_subs(), m_base() { (void)a; }
|
||||
: m_subs(), m_base(), m_last_closed_paren(0) { (void)a; }
|
||||
#endif
|
||||
match_results(const match_results& m)
|
||||
: m_subs(m.m_subs), m_base(m.m_base) {}
|
||||
@ -95,6 +103,24 @@ public:
|
||||
return m_subs[sub].length();
|
||||
return 0;
|
||||
}
|
||||
difference_type length(const char_type* sub) const
|
||||
{
|
||||
const char_type* end = sub;
|
||||
while(*end) ++end;
|
||||
return length(named_subexpression_index(sub, end));
|
||||
}
|
||||
template <class charT>
|
||||
difference_type length(const charT* sub) const
|
||||
{
|
||||
const charT* end = sub;
|
||||
while(*end) ++end;
|
||||
return length(named_subexpression_index(sub, end));
|
||||
}
|
||||
template <class charT, class Traits, class A>
|
||||
difference_type length(const std::basic_string<charT, Traits, A>& sub) const
|
||||
{
|
||||
return length(sub.c_str());
|
||||
}
|
||||
difference_type position(size_type sub = 0) const
|
||||
{
|
||||
sub += 2;
|
||||
@ -108,6 +134,24 @@ public:
|
||||
}
|
||||
return ~static_cast<difference_type>(0);
|
||||
}
|
||||
difference_type position(const char_type* sub) const
|
||||
{
|
||||
const char_type* end = sub;
|
||||
while(*end) ++end;
|
||||
return position(named_subexpression_index(sub, end));
|
||||
}
|
||||
template <class charT>
|
||||
difference_type position(const charT* sub) const
|
||||
{
|
||||
const charT* end = sub;
|
||||
while(*end) ++end;
|
||||
return position(named_subexpression_index(sub, end));
|
||||
}
|
||||
template <class charT, class Traits, class A>
|
||||
difference_type position(const std::basic_string<charT, Traits, A>& sub) const
|
||||
{
|
||||
return position(sub.c_str());
|
||||
}
|
||||
string_type str(int sub = 0) const
|
||||
{
|
||||
sub += 2;
|
||||
@ -122,6 +166,25 @@ public:
|
||||
}
|
||||
return result;
|
||||
}
|
||||
string_type str(const char_type* sub) const
|
||||
{
|
||||
return (*this)[sub].str();
|
||||
}
|
||||
template <class Traits, class A>
|
||||
string_type str(const std::basic_string<char_type, Traits, A>& sub) const
|
||||
{
|
||||
return (*this)[sub].str();
|
||||
}
|
||||
template <class charT>
|
||||
string_type str(const charT* sub) const
|
||||
{
|
||||
return (*this)[sub].str();
|
||||
}
|
||||
template <class charT, class Traits, class A>
|
||||
string_type str(const std::basic_string<charT, Traits, A>& sub) const
|
||||
{
|
||||
return (*this)[sub].str();
|
||||
}
|
||||
const_reference operator[](int sub) const
|
||||
{
|
||||
sub += 2;
|
||||
@ -131,6 +194,75 @@ public:
|
||||
}
|
||||
return m_null;
|
||||
}
|
||||
//
|
||||
// Named sub-expressions:
|
||||
//
|
||||
const_reference named_subexpression(const char_type* i, const char_type* j) const
|
||||
{
|
||||
int index = m_named_subs->get_id(i, j);
|
||||
return index > 0 ? (*this)[index] : m_null;
|
||||
}
|
||||
template <class charT>
|
||||
const_reference named_subexpression(const charT* i, const charT* j) const
|
||||
{
|
||||
BOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
|
||||
if(i == j)
|
||||
return m_null;
|
||||
std::vector<char_type> s;
|
||||
while(i != j)
|
||||
s.insert(s.end(), *i++);
|
||||
return named_subexpression(&*s.begin(), &*s.begin() + s.size());
|
||||
}
|
||||
int named_subexpression_index(const char_type* i, const char_type* j) const
|
||||
{
|
||||
int index = m_named_subs->get_id(i, j);
|
||||
return index > 0 ? index : -20;
|
||||
}
|
||||
template <class charT>
|
||||
int named_subexpression_index(const charT* i, const charT* j) const
|
||||
{
|
||||
BOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
|
||||
if(i == j)
|
||||
return -20;
|
||||
std::vector<char_type> s;
|
||||
while(i != j)
|
||||
s.insert(s.end(), *i++);
|
||||
return named_subexpression_index(&*s.begin(), &*s.begin() + s.size());
|
||||
}
|
||||
template <class Traits, class A>
|
||||
const_reference operator[](const std::basic_string<char_type, Traits, A>& s) const
|
||||
{
|
||||
return named_subexpression(s.c_str(), s.c_str() + s.size());
|
||||
}
|
||||
const_reference operator[](const char_type* p) const
|
||||
{
|
||||
const char_type* e = p;
|
||||
while(*e) ++e;
|
||||
return named_subexpression(p, e);
|
||||
}
|
||||
|
||||
template <class charT>
|
||||
const_reference operator[](const charT* p) const
|
||||
{
|
||||
BOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
|
||||
if(*p == 0)
|
||||
return m_null;
|
||||
std::vector<char_type> s;
|
||||
while(*p)
|
||||
s.insert(s.end(), *p++);
|
||||
return named_subexpression(&*s.begin(), &*s.begin() + s.size());
|
||||
}
|
||||
template <class charT, class Traits, class A>
|
||||
const_reference operator[](const std::basic_string<charT, Traits, A>& ns) const
|
||||
{
|
||||
BOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
|
||||
if(ns.empty())
|
||||
return m_null;
|
||||
std::vector<char_type> s;
|
||||
for(unsigned i = 0; i < ns.size(); ++i)
|
||||
s.insert(s.end(), ns[i]);
|
||||
return named_subexpression(&*s.begin(), &*s.begin() + s.size());
|
||||
}
|
||||
|
||||
const_reference prefix() const
|
||||
{
|
||||
@ -186,6 +318,10 @@ public:
|
||||
::boost::re_detail::regex_format_imp(i, *this, fmt.data(), fmt.data() + fmt.size(), flags, re.get_traits());
|
||||
return result;
|
||||
}
|
||||
const_reference get_last_closed_paren()const
|
||||
{
|
||||
return m_last_closed_paren == 0 ? m_null : (*this)[m_last_closed_paren];
|
||||
}
|
||||
|
||||
allocator_type get_allocator() const
|
||||
{
|
||||
@ -230,13 +366,15 @@ public:
|
||||
m_null.matched = false;
|
||||
}
|
||||
|
||||
void BOOST_REGEX_CALL set_second(BidiIterator i, size_type pos, bool m = true)
|
||||
void BOOST_REGEX_CALL set_second(BidiIterator i, size_type pos, bool m = true, bool escape_k = false)
|
||||
{
|
||||
if(pos)
|
||||
m_last_closed_paren = pos;
|
||||
pos += 2;
|
||||
BOOST_ASSERT(m_subs.size() > pos);
|
||||
m_subs[pos].second = i;
|
||||
m_subs[pos].matched = m;
|
||||
if(pos == 2)
|
||||
if((pos == 2) && !escape_k)
|
||||
{
|
||||
m_subs[0].first = i;
|
||||
m_subs[0].matched = (m_subs[0].first != m_subs[0].second);
|
||||
@ -261,6 +399,7 @@ public:
|
||||
m_subs.insert(m_subs.end(), n+2-len, v);
|
||||
}
|
||||
m_subs[1].first = i;
|
||||
m_last_closed_paren = 0;
|
||||
}
|
||||
void BOOST_REGEX_CALL set_base(BidiIterator pos)
|
||||
{
|
||||
@ -284,21 +423,34 @@ public:
|
||||
m_subs[n].matched = false;
|
||||
}
|
||||
}
|
||||
void BOOST_REGEX_CALL set_first(BidiIterator i, size_type pos)
|
||||
void BOOST_REGEX_CALL set_first(BidiIterator i, size_type pos, bool escape_k = false)
|
||||
{
|
||||
BOOST_ASSERT(pos+2 < m_subs.size());
|
||||
if(pos)
|
||||
if(pos || escape_k)
|
||||
{
|
||||
m_subs[pos+2].first = i;
|
||||
if(escape_k)
|
||||
{
|
||||
m_subs[1].second = i;
|
||||
m_subs[1].matched = (m_subs[1].first != m_subs[1].second);
|
||||
}
|
||||
}
|
||||
else
|
||||
set_first(i);
|
||||
}
|
||||
void BOOST_REGEX_CALL maybe_assign(const match_results<BidiIterator, Allocator>& m);
|
||||
|
||||
void BOOST_REGEX_CALL set_named_subs(boost::shared_ptr<named_sub_type> subs)
|
||||
{
|
||||
m_named_subs = subs;
|
||||
}
|
||||
|
||||
private:
|
||||
vector_type m_subs; // subexpressions
|
||||
BidiIterator m_base; // where the search started from
|
||||
sub_match<BidiIterator> m_null; // a null match
|
||||
boost::shared_ptr<named_sub_type> m_named_subs;
|
||||
int m_last_closed_paren;
|
||||
};
|
||||
|
||||
template <class BidiIterator, class Allocator>
|
||||
|
@ -200,12 +200,13 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_imp()
|
||||
m_match_flags |= regex_constants::match_all;
|
||||
m_presult->set_size((m_match_flags & match_nosubs) ? 1 : re.mark_count(), search_base, last);
|
||||
m_presult->set_base(base);
|
||||
m_presult->set_named_subs(re_detail::convert_to_named_subs<typename match_results<BidiIterator>::char_type>(this->re.get_named_subs()));
|
||||
if(m_match_flags & match_posix)
|
||||
m_result = *m_presult;
|
||||
verify_options(re.flags(), m_match_flags);
|
||||
if(0 == match_prefix())
|
||||
return false;
|
||||
return m_result[0].second == last;
|
||||
return (m_result[0].second == last) && (m_result[0].first == base);
|
||||
|
||||
#if defined(BOOST_REGEX_NON_RECURSIVE) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
}
|
||||
@ -261,6 +262,7 @@ bool perl_matcher<BidiIterator, Allocator, traits>::find_imp()
|
||||
pstate = re.get_first_state();
|
||||
m_presult->set_size((m_match_flags & match_nosubs) ? 1 : re.mark_count(), base, last);
|
||||
m_presult->set_base(base);
|
||||
m_presult->set_named_subs(re_detail::convert_to_named_subs<typename match_results<BidiIterator>::char_type>(this->re.get_named_subs()));
|
||||
m_match_flags |= regex_constants::match_init;
|
||||
}
|
||||
else
|
||||
|
@ -213,7 +213,7 @@ void perl_matcher<BidiIterator, Allocator, traits>::extend_stack()
|
||||
template <class BidiIterator, class Allocator, class traits>
|
||||
inline void perl_matcher<BidiIterator, Allocator, traits>::push_matched_paren(int index, const sub_match<BidiIterator>& sub)
|
||||
{
|
||||
BOOST_ASSERT(index);
|
||||
//BOOST_ASSERT(index);
|
||||
saved_matched_paren<BidiIterator>* pmp = static_cast<saved_matched_paren<BidiIterator>*>(m_backup_state);
|
||||
--pmp;
|
||||
if(pmp < m_stack_base)
|
||||
@ -404,6 +404,13 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_startmark()
|
||||
break;
|
||||
}
|
||||
}
|
||||
case -5:
|
||||
{
|
||||
push_matched_paren(0, (*m_presult)[0]);
|
||||
m_presult->set_first(position, 0, true);
|
||||
pstate = pstate->next.p;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
BOOST_ASSERT(index > 0);
|
||||
@ -911,8 +918,8 @@ bool perl_matcher<BidiIterator, Allocator, traits>::unwind_paren(bool have_match
|
||||
// restore previous values if no match was found:
|
||||
if(have_match == false)
|
||||
{
|
||||
m_presult->set_first(pmp->sub.first, pmp->index);
|
||||
m_presult->set_second(pmp->sub.second, pmp->index, pmp->sub.matched);
|
||||
m_presult->set_first(pmp->sub.first, pmp->index, pmp->index == 0);
|
||||
m_presult->set_second(pmp->sub.second, pmp->index, pmp->sub.matched, pmp->index == 0);
|
||||
}
|
||||
#ifdef BOOST_REGEX_MATCH_EXTRA
|
||||
//
|
||||
|
@ -51,8 +51,8 @@ public:
|
||||
template <class A>
|
||||
void restore(match_results<BidiIterator, A>& w)
|
||||
{
|
||||
w.set_first(sub.first, index);
|
||||
w.set_second(sub.second, index, sub.matched);
|
||||
w.set_first(sub.first, index, index == 0);
|
||||
w.set_second(sub.second, index, sub.matched, index == 0);
|
||||
}
|
||||
const sub_match<BidiIterator>& get() { return sub; }
|
||||
};
|
||||
@ -209,6 +209,17 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_startmark()
|
||||
break;
|
||||
}
|
||||
}
|
||||
case -5:
|
||||
{
|
||||
// Reset start of $0, since we have a \K escape
|
||||
backup_subex<BidiIterator> sub(*m_presult, 0);
|
||||
m_presult->set_first(position, 0, true);
|
||||
pstate = pstate->next.p;
|
||||
r = match_all_states();
|
||||
if(r == false)
|
||||
sub.restore(*m_presult);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
BOOST_ASSERT(index > 0);
|
||||
|
@ -107,6 +107,7 @@ private:
|
||||
void format_escape();
|
||||
void format_conditional();
|
||||
void format_until_scope_end();
|
||||
bool handle_perl_verb(bool have_brace);
|
||||
|
||||
const traits& m_traits; // the traits class for localised formatting operations
|
||||
const Results& m_results; // the match_results being used.
|
||||
@ -250,6 +251,25 @@ void basic_regex_formatter<OutputIterator, Results, traits>::format_perl()
|
||||
case '$':
|
||||
put(*m_position++);
|
||||
break;
|
||||
case '+':
|
||||
if((++m_position != m_end) && (*m_position == '{'))
|
||||
{
|
||||
const char_type* base = ++m_position;
|
||||
while((m_position != m_end) && (*m_position != '}')) ++m_position;
|
||||
if(m_position != m_end)
|
||||
{
|
||||
// Named sub-expression:
|
||||
put(this->m_results.named_subexpression(base, m_position));
|
||||
++m_position;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_position = --base;
|
||||
}
|
||||
}
|
||||
put((this->m_results)[this->m_results.size() > 1 ? this->m_results.size() - 1 : 1]);
|
||||
break;
|
||||
case '{':
|
||||
have_brace = true;
|
||||
++m_position;
|
||||
@ -258,14 +278,18 @@ void basic_regex_formatter<OutputIterator, Results, traits>::format_perl()
|
||||
// see if we have a number:
|
||||
{
|
||||
std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
|
||||
len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
|
||||
//len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
|
||||
int v = m_traits.toi(m_position, m_position + len, 10);
|
||||
if((v < 0) || (have_brace && ((m_position == m_end) || (*m_position != '}'))))
|
||||
{
|
||||
// leave the $ as is, and carry on:
|
||||
m_position = --save_position;
|
||||
put(*m_position);
|
||||
++m_position;
|
||||
// Look for a Perl-5.10 verb:
|
||||
if(!handle_perl_verb(have_brace))
|
||||
{
|
||||
// leave the $ as is, and carry on:
|
||||
m_position = --save_position;
|
||||
put(*m_position);
|
||||
++m_position;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// otherwise output sub v:
|
||||
@ -276,6 +300,123 @@ void basic_regex_formatter<OutputIterator, Results, traits>::format_perl()
|
||||
}
|
||||
}
|
||||
|
||||
template <class OutputIterator, class Results, class traits>
|
||||
bool basic_regex_formatter<OutputIterator, Results, traits>::handle_perl_verb(bool have_brace)
|
||||
{
|
||||
//
|
||||
// We may have a capitalised string containing a Perl action:
|
||||
//
|
||||
static const char_type MATCH[] = { 'M', 'A', 'T', 'C', 'H' };
|
||||
static const char_type PREMATCH[] = { 'P', 'R', 'E', 'M', 'A', 'T', 'C', 'H' };
|
||||
static const char_type POSTMATCH[] = { 'P', 'O', 'S', 'T', 'M', 'A', 'T', 'C', 'H' };
|
||||
static const char_type LAST_PAREN_MATCH[] = { 'L', 'A', 'S', 'T', '_', 'P', 'A', 'R', 'E', 'N', '_', 'M', 'A', 'T', 'C', 'H' };
|
||||
static const char_type LAST_SUBMATCH_RESULT[] = { 'L', 'A', 'S', 'T', '_', 'S', 'U', 'B', 'M', 'A', 'T', 'C', 'H', '_', 'R', 'E', 'S', 'U', 'L', 'T' };
|
||||
static const char_type LAST_SUBMATCH_RESULT_ALT[] = { '^', 'N' };
|
||||
|
||||
if(have_brace && (*m_position == '^'))
|
||||
++m_position;
|
||||
|
||||
int max_len = m_end - m_position;
|
||||
|
||||
if((max_len >= 5) && std::equal(m_position, m_position + 5, MATCH))
|
||||
{
|
||||
m_position += 5;
|
||||
if(have_brace)
|
||||
{
|
||||
if(*m_position == '}')
|
||||
++m_position;
|
||||
else
|
||||
{
|
||||
m_position -= 5;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
put(this->m_results[0]);
|
||||
return true;
|
||||
}
|
||||
if((max_len >= 8) && std::equal(m_position, m_position + 8, PREMATCH))
|
||||
{
|
||||
m_position += 8;
|
||||
if(have_brace)
|
||||
{
|
||||
if(*m_position == '}')
|
||||
++m_position;
|
||||
else
|
||||
{
|
||||
m_position -= 8;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
put(this->m_results.prefix());
|
||||
return true;
|
||||
}
|
||||
if((max_len >= 9) && std::equal(m_position, m_position + 9, POSTMATCH))
|
||||
{
|
||||
m_position += 9;
|
||||
if(have_brace)
|
||||
{
|
||||
if(*m_position == '}')
|
||||
++m_position;
|
||||
else
|
||||
{
|
||||
m_position -= 9;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
put(this->m_results.suffix());
|
||||
return true;
|
||||
}
|
||||
if((max_len >= 16) && std::equal(m_position, m_position + 16, LAST_PAREN_MATCH))
|
||||
{
|
||||
m_position += 16;
|
||||
if(have_brace)
|
||||
{
|
||||
if(*m_position == '}')
|
||||
++m_position;
|
||||
else
|
||||
{
|
||||
m_position -= 16;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
put((this->m_results)[this->m_results.size() > 1 ? this->m_results.size() - 1 : 1]);
|
||||
return true;
|
||||
}
|
||||
if((max_len >= 20) && std::equal(m_position, m_position + 20, LAST_SUBMATCH_RESULT))
|
||||
{
|
||||
m_position += 20;
|
||||
if(have_brace)
|
||||
{
|
||||
if(*m_position == '}')
|
||||
++m_position;
|
||||
else
|
||||
{
|
||||
m_position -= 20;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
put(this->m_results.get_last_closed_paren());
|
||||
return true;
|
||||
}
|
||||
if((max_len >= 2) && std::equal(m_position, m_position + 2, LAST_SUBMATCH_RESULT_ALT))
|
||||
{
|
||||
m_position += 2;
|
||||
if(have_brace)
|
||||
{
|
||||
if(*m_position == '}')
|
||||
++m_position;
|
||||
else
|
||||
{
|
||||
m_position -= 2;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
put(this->m_results.get_last_closed_paren());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
template <class OutputIterator, class Results, class traits>
|
||||
void basic_regex_formatter<OutputIterator, Results, traits>::format_escape()
|
||||
{
|
||||
@ -440,9 +581,35 @@ void basic_regex_formatter<OutputIterator, Results, traits>::format_conditional(
|
||||
put(static_cast<char_type>('?'));
|
||||
return;
|
||||
}
|
||||
std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
|
||||
len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
|
||||
int v = m_traits.toi(m_position, m_position + len, 10);
|
||||
int v;
|
||||
if(*m_position == '{')
|
||||
{
|
||||
const char_type* base = m_position;
|
||||
++m_position;
|
||||
v = m_traits.toi(m_position, m_end, 10);
|
||||
if(v < 0)
|
||||
{
|
||||
// Try a named subexpression:
|
||||
while((m_position != m_end) && (*m_position != '}'))
|
||||
++m_position;
|
||||
v = m_results.named_subexpression_index(base + 1, m_position);
|
||||
}
|
||||
if((v < 0) || (*m_position != '}'))
|
||||
{
|
||||
m_position = base;
|
||||
// oops trailing '?':
|
||||
put(static_cast<char_type>('?'));
|
||||
return;
|
||||
}
|
||||
// Skip trailing '}':
|
||||
++m_position;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end);
|
||||
len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
|
||||
v = m_traits.toi(m_position, m_position + len, 10);
|
||||
}
|
||||
if(v < 0)
|
||||
{
|
||||
// oops not a number:
|
||||
|
@ -159,7 +159,7 @@ struct character_pointer_range
|
||||
template <class charT>
|
||||
int get_default_class_id(const charT* p1, const charT* p2)
|
||||
{
|
||||
static const charT data[72] = {
|
||||
static const charT data[73] = {
|
||||
'a', 'l', 'n', 'u', 'm',
|
||||
'a', 'l', 'p', 'h', 'a',
|
||||
'b', 'l', 'a', 'n', 'k',
|
||||
@ -172,11 +172,12 @@ int get_default_class_id(const charT* p1, const charT* p2)
|
||||
's', 'p', 'a', 'c', 'e',
|
||||
'u', 'n', 'i', 'c', 'o', 'd', 'e',
|
||||
'u', 'p', 'p', 'e', 'r',
|
||||
'v',
|
||||
'w', 'o', 'r', 'd',
|
||||
'x', 'd', 'i', 'g', 'i', 't',
|
||||
};
|
||||
|
||||
static const character_pointer_range<charT> ranges[19] =
|
||||
static const character_pointer_range<charT> ranges[21] =
|
||||
{
|
||||
{data+0, data+5,}, // alnum
|
||||
{data+5, data+10,}, // alpha
|
||||
@ -185,6 +186,7 @@ int get_default_class_id(const charT* p1, const charT* p2)
|
||||
{data+20, data+21,}, // d
|
||||
{data+20, data+25,}, // digit
|
||||
{data+25, data+30,}, // graph
|
||||
{data+29, data+30,}, // h
|
||||
{data+30, data+31,}, // l
|
||||
{data+30, data+35,}, // lower
|
||||
{data+35, data+40,}, // print
|
||||
@ -194,9 +196,10 @@ int get_default_class_id(const charT* p1, const charT* p2)
|
||||
{data+57, data+58,}, // u
|
||||
{data+50, data+57,}, // unicode
|
||||
{data+57, data+62,}, // upper
|
||||
{data+62, data+63,}, // w
|
||||
{data+62, data+66,}, // word
|
||||
{data+66, data+72,}, // xdigit
|
||||
{data+62, data+63,}, // v
|
||||
{data+63, data+64,}, // w
|
||||
{data+63, data+67,}, // word
|
||||
{data+67, data+73,}, // xdigit
|
||||
};
|
||||
static const character_pointer_range<charT>* ranges_begin = ranges;
|
||||
static const character_pointer_range<charT>* ranges_end = ranges + (sizeof(ranges)/sizeof(ranges[0]));
|
||||
@ -314,6 +317,43 @@ int global_toi(const charT*& p1, const charT* p2, int radix, const traits& t)
|
||||
return result;
|
||||
}
|
||||
|
||||
template <class charT>
|
||||
inline const charT* get_escape_R_string()
|
||||
{
|
||||
#ifdef BOOST_MSVC
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable:4309)
|
||||
#endif
|
||||
static const charT e1[] = { '(', '?', '>', '\x0D', '\x0A', '?',
|
||||
'|', '[', '\x0A', '\x0B', '\x0C', '\x85', '\\', 'x', '{', '2', '0', '2', '8', '}',
|
||||
'\\', 'x', '{', '2', '0', '2', '9', '}', ']', ')', '\0' };
|
||||
static const charT e2[] = { '(', '?', '>', '\x0D', '\x0A', '?',
|
||||
'|', '[', '\x0A', '\x0B', '\x0C', '\x85', ']', ')', '\0' };
|
||||
|
||||
charT c = static_cast<charT>(0x2029u);
|
||||
bool b = (static_cast<unsigned>(c) == 0x2029u);
|
||||
|
||||
return (b ? e1 : e2);
|
||||
#ifdef BOOST_MSVC
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
}
|
||||
|
||||
template <>
|
||||
inline const char* get_escape_R_string<char>()
|
||||
{
|
||||
#ifdef BOOST_MSVC
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable:4309)
|
||||
#endif
|
||||
static const char e2[] = { '(', '?', '>', '\x0D', '\x0A', '?',
|
||||
'|', '[', '\x0A', '\x0B', '\x0C', '\x85', ']', ')', '\0' };
|
||||
return e2;
|
||||
#ifdef BOOST_MSVC
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
}
|
||||
|
||||
} // re_detail
|
||||
} // boost
|
||||
|
||||
|
@ -92,8 +92,11 @@ static const escape_syntax_type escape_type_G = 52; /
|
||||
static const escape_syntax_type escape_type_property = 54; // for \p
|
||||
static const escape_syntax_type escape_type_not_property = 55; // for \P
|
||||
static const escape_syntax_type escape_type_named_char = 56; // for \N
|
||||
static const escape_syntax_type escape_type_extended_backref = 57; // for \g
|
||||
static const escape_syntax_type escape_type_reset_start_mark = 58; // for \K
|
||||
static const escape_syntax_type escape_type_line_ending = 59; // for \R
|
||||
|
||||
static const escape_syntax_type syntax_max = 57;
|
||||
static const escape_syntax_type syntax_max = 60;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -294,6 +294,8 @@ public:
|
||||
typedef typename w32_regex_traits<charT>::char_class_type char_class_type;
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_word = 0x0400); // must be C1_DEFINED << 1
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_unicode = 0x0800); // must be C1_DEFINED << 2
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_horizontal = 0x1000); // must be C1_DEFINED << 3
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_vertical = 0x2000); // must be C1_DEFINED << 4
|
||||
BOOST_STATIC_CONSTANT(char_class_type, mask_base = 0x3ff); // all the masks used by the CT_CTYPE1 group
|
||||
|
||||
typedef std::basic_string<charT> string_type;
|
||||
@ -510,7 +512,7 @@ template <class charT>
|
||||
typename w32_regex_traits_implementation<charT>::char_class_type
|
||||
w32_regex_traits_implementation<charT>::lookup_classname_imp(const charT* p1, const charT* p2) const
|
||||
{
|
||||
static const char_class_type masks[20] =
|
||||
static const char_class_type masks[22] =
|
||||
{
|
||||
0,
|
||||
0x0104u, // C1_ALPHA | C1_DIGIT
|
||||
@ -520,6 +522,7 @@ typename w32_regex_traits_implementation<charT>::char_class_type
|
||||
0x0004u, // C1_DIGIT
|
||||
0x0004u, // C1_DIGIT
|
||||
(~(0x0020u|0x0008u|0x0040) & 0x01ffu) | 0x0400u, // not C1_CNTRL or C1_SPACE or C1_BLANK
|
||||
w32_regex_traits_implementation<charT>::mask_horizontal,
|
||||
0x0002u, // C1_LOWER
|
||||
0x0002u, // C1_LOWER
|
||||
(~0x0020u & 0x01ffu) | 0x0400, // not C1_CNTRL
|
||||
@ -529,6 +532,7 @@ typename w32_regex_traits_implementation<charT>::char_class_type
|
||||
0x0001u, // C1_UPPER
|
||||
w32_regex_traits_implementation<charT>::mask_unicode,
|
||||
0x0001u, // C1_UPPER
|
||||
w32_regex_traits_implementation<charT>::mask_vertical,
|
||||
0x0104u | w32_regex_traits_implementation<charT>::mask_word,
|
||||
0x0104u | w32_regex_traits_implementation<charT>::mask_word,
|
||||
0x0080u, // C1_XDIGIT
|
||||
@ -628,6 +632,12 @@ public:
|
||||
return true;
|
||||
else if((f & re_detail::w32_regex_traits_implementation<charT>::mask_word) && (c == '_'))
|
||||
return true;
|
||||
else if((f & re_detail::w32_regex_traits_implementation<charT>::mask_vertical)
|
||||
&& (::boost::re_detail::is_separator(c) || (c == '\v')))
|
||||
return true;
|
||||
else if((f & re_detail::w32_regex_traits_implementation<charT>::mask_horizontal)
|
||||
&& this->isctype(c, 0x0008u) && !this->isctype(c, re_detail::w32_regex_traits_implementation<charT>::mask_vertical))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
int toi(const charT*& p1, const charT* p2, int radix)const
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user