| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> |
| <title>Localization</title> |
| <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> |
| <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"> |
| <link rel="next" href="thread_safety.html" title="Thread Safety"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table cellpadding="2" width="100%"><tr> |
| <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td> |
| <td align="center"><a href="../../../../../../index.html">Home</a></td> |
| <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> |
| <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> |
| <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> |
| <td align="center"><a href="../../../../../../more/index.htm">More</a></td> |
| </tr></table> |
| <hr> |
| <div class="spirit-nav"> |
| <a accesskey="p" href="headers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../background_information.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_safety.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> |
| </div> |
| <div class="section" lang="en"> |
| <div class="titlepage"><div><div><h3 class="title"> |
| <a name="boost_regex.background_information.locale"></a><a class="link" href="locale.html" title="Localization">Localization</a> |
| </h3></div></div></div> |
| <p> |
| Boost.Regex provides extensive support for run-time localization, the localization |
| model used can be split into two parts: front-end and back-end. |
| </p> |
| <p> |
| Front-end localization deals with everything which the user sees - error |
| messages, and the regular expression syntax itself. For example a French |
| application could change [[:word:]] to [[:mot:]] and \w to \m. Modifying |
| the front end locale requires active support from the developer, by providing |
| the library with a message catalogue to load, containing the localized strings. |
| Front-end locale is affected by the LC_MESSAGES category only. |
| </p> |
| <p> |
| Back-end localization deals with everything that occurs after the expression |
| has been parsed - in other words everything that the user does not see or |
| interact with directly. It deals with case conversion, collation, and character |
| class membership. The back-end locale does not require any intervention from |
| the developer - the library will acquire all the information it requires |
| for the current locale from the underlying operating system / run time library. |
| This means that if the program user does not interact with regular expressions |
| directly - for example if the expressions are embedded in your C++ code - |
| then no explicit localization is required, as the library will take care |
| of everything for you. For example embedding the expression [[:word:]]+ in |
| your code will always match a whole word, if the program is run on a machine |
| with, for example, a Greek locale, then it will still match a whole word, |
| but in Greek characters rather than Latin ones. The back-end locale is affected |
| by the LC_TYPE and LC_COLLATE categories. |
| </p> |
| <p> |
| 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="id1144995"></a> |
| <a class="link" href="locale.html#boost_regex.background_information.locale.win32_localization_model_">Win32 |
| localization model.</a> |
| </h5> |
| <p> |
| This is the default model when the library is compiled under Win32, and is |
| encapsulated by the traits class <code class="computeroutput"><span class="identifier">w32_regex_traits</span></code>. |
| When this model is in effect each <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> object gets it's own |
| LCID, by default this is the users default setting as returned by GetUserDefaultLCID, |
| but you can call imbue on the <code class="computeroutput"><span class="identifier">basic_regex</span></code> |
| object to set it's locale to some other LCID if you wish. All the settings |
| used by Boost.Regex are acquired directly from the operating system bypassing |
| the C run time library. Front-end localization requires a resource dll, containing |
| a string table with the user-defined strings. The traits class exports the |
| function: |
| </p> |
| <pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">set_message_catalogue</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> |
| </pre> |
| <p> |
| which needs to be called with a string identifying the name of the resource |
| dll, before your code compiles any regular expressions (but not necessarily |
| before you construct any <code class="computeroutput"><span class="identifier">basic_regex</span></code> |
| instances): |
| </p> |
| <pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">w32_regex_traits</span><span class="special"><</span><span class="keyword">char</span><span class="special">>::</span><span class="identifier">set_message_catalogue</span><span class="special">(</span><span class="string">"mydll.dll"</span><span class="special">);</span> |
| </pre> |
| <p> |
| The library provides full Unicode support under NT, under Windows 9x the |
| library degrades gracefully - characters 0 to 255 are supported, the remainder |
| are treated as "unknown" graphic characters. |
| </p> |
| <a name="boost_regex.background_information.locale.c_localization_model_"></a><h5> |
| <a name="id1145150"></a> |
| <a class="link" href="locale.html#boost_regex.background_information.locale.c_localization_model_">C |
| localization model.</a> |
| </h5> |
| <p> |
| This model has been deprecated in favor of the C++ locale for all non-Windows |
| compilers that support it. This locale is encapsulated by the traits class |
| <code class="computeroutput"><span class="identifier">c_regex_traits</span></code>, Win32 users |
| can force this model to take effect by defining the pre-processor symbol |
| BOOST_REGEX_USE_C_LOCALE. When this model is in effect there is a single |
| global locale, as set by <code class="computeroutput"><span class="identifier">setlocale</span></code>. |
| All settings are acquired from your run time library, consequently Unicode |
| support is dependent upon your run time library implementation. |
| </p> |
| <p> |
| Front end localization is not supported. |
| </p> |
| <p> |
| Note that calling setlocale invalidates all compiled regular expressions, |
| calling <code class="computeroutput"><span class="identifier">setlocale</span><span class="special">(</span><span class="identifier">LC_ALL</span><span class="special">,</span> <span class="string">"C"</span><span class="special">)</span></code> |
| will make this library behave equivalent to most traditional regular expression |
| libraries including version 1 of this library. |
| </p> |
| <a name="boost_regex.background_information.locale.c___localization_model_"></a><h5> |
| <a name="id1145218"></a> |
| <a class="link" href="locale.html#boost_regex.background_information.locale.c___localization_model_">C++ |
| localization model.</a> |
| </h5> |
| <p> |
| This model is the default for non-Windows compilers. |
| </p> |
| <p> |
| When this model is in effect each instance of <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> has its own instance |
| of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span></code>, class <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> also has a member function |
| <code class="computeroutput"><span class="identifier">imbue</span></code> which allows the locale |
| for the expression to be set on a per-instance basis. Front end localization |
| requires a POSIX message catalogue, which will be loaded via the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">messages</span></code> |
| facet of the expression's locale, the traits class exports the symbol: |
| </p> |
| <pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">set_message_catalogue</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> |
| </pre> |
| <p> |
| which needs to be called with a string identifying the name of the message |
| catalogue, before your code compiles any regular expressions (but not necessarily |
| before you construct any basic_regex instances): |
| </p> |
| <pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">cpp_regex_traits</span><span class="special"><</span><span class="keyword">char</span><span class="special">>::</span><span class="identifier">set_message_catalogue</span><span class="special">(</span><span class="string">"mycatalogue"</span><span class="special">);</span> |
| </pre> |
| <p> |
| Note that calling <code class="computeroutput"><span class="identifier">basic_regex</span><span class="special"><>::</span><span class="identifier">imbue</span></code> |
| will invalidate any expression currently compiled in that instance of <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>. |
| </p> |
| <p> |
| Finally note that if you build the library with a non-default localization |
| model, then the appropriate pre-processor symbol (BOOST_REGEX_USE_C_LOCALE |
| or BOOST_REGEX_USE_CPP_LOCALE) must be defined both when you build the support |
| library, and when you include <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">hpp</span><span class="special">></span></code> |
| or <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> |
| 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="id1146723"></a> |
| <a class="link" href="locale.html#boost_regex.background_information.locale.providing_a_message_catalogue">Providing |
| a message catalogue</a> |
| </h5> |
| <p> |
| In order to localize the front end of the library, you need to provide the |
| library with the appropriate message strings contained either in a resource |
| dll's string table (Win32 model), or a POSIX message catalogue (C++ models). |
| In the latter case the messages must appear in message set zero of the catalogue. |
| The messages and their id's are as follows: |
| </p> |
| <div class="informaltable"><table class="table"> |
| <colgroup> |
| <col> |
| <col> |
| <col> |
| </colgroup> |
| <thead><tr> |
| <th> |
| <p> |
| Message |
| </p> |
| </th> |
| <th> |
| <p> |
| id |
| </p> |
| </th> |
| <th> |
| <p> |
| Meaning |
| </p> |
| </th> |
| <th> |
| <p> |
| Default value |
| </p> |
| </th> |
| </tr></thead> |
| <tbody> |
| <tr> |
| <td> |
| <p> |
| 101 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character used to start a sub-expression. |
| </p> |
| </td> |
| <td> |
| <p> |
| "(" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 102 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character used to end a sub-expression declaration. |
| </p> |
| </td> |
| <td> |
| <p> |
| ")" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 103 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character used to denote an end of line assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "$" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 104 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character used to denote the start of line assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "^" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 105 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character used to denote the "match any character expression". |
| </p> |
| </td> |
| <td> |
| <p> |
| "." |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 106 |
| </p> |
| </td> |
| <td> |
| <p> |
| The match zero or more times repetition operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "*" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 107 |
| </p> |
| </td> |
| <td> |
| <p> |
| The match one or more repetition operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "+" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 108 |
| </p> |
| </td> |
| <td> |
| <p> |
| The match zero or one repetition operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "?" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 109 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character set opening character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "[" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 110 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character set closing character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "]" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 111 |
| </p> |
| </td> |
| <td> |
| <p> |
| The alternation operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "|" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 112 |
| </p> |
| </td> |
| <td> |
| <p> |
| The escape character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "\" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 113 |
| </p> |
| </td> |
| <td> |
| <p> |
| The hash character (not currently used). |
| </p> |
| </td> |
| <td> |
| <p> |
| "#" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 114 |
| </p> |
| </td> |
| <td> |
| <p> |
| The range operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "-" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 115 |
| </p> |
| </td> |
| <td> |
| <p> |
| The repetition operator opening character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "{" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 116 |
| </p> |
| </td> |
| <td> |
| <p> |
| The repetition operator closing character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "}" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 117 |
| </p> |
| </td> |
| <td> |
| <p> |
| The digit characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "0123456789" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 118 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the word boundary assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "b" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 119 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the non-word boundary assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "B" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 120 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the word-start boundary assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "<" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 121 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the word-end boundary assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| ">" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 122 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any word character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "w" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 123 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| a non-word character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "W" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 124 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| a start of buffer assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "`A" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 125 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| an end of buffer assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "'z" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 126 |
| </p> |
| </td> |
| <td> |
| <p> |
| The newline character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "\n" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 127 |
| </p> |
| </td> |
| <td> |
| <p> |
| The comma separator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "," |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 128 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the bell character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "a" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 129 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the form feed character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "f" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 130 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the newline character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "n" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 131 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the carriage return character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "r" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 132 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the tab character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "t" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 133 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the vertical tab character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "v" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 134 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the start of a hexadecimal character constant. |
| </p> |
| </td> |
| <td> |
| <p> |
| "x" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 135 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the start of an ASCII escape character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "c" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 136 |
| </p> |
| </td> |
| <td> |
| <p> |
| The colon character. |
| </p> |
| </td> |
| <td> |
| <p> |
| ":" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 137 |
| </p> |
| </td> |
| <td> |
| <p> |
| The equals character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "=" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 138 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the ASCII escape character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "e" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 139 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any lower case character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "l" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 140 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any non-lower case character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "L" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 141 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any upper case character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "u" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 142 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any non-upper case character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "U" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 143 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any space character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "s" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 144 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any non-space character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "S" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 145 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any digit character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "d" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 146 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any non-digit character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "D" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 147 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the end quote operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "E" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 148 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the start quote operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "Q" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 149 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| a Unicode combining character sequence. |
| </p> |
| </td> |
| <td> |
| <p> |
| "X" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 150 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| any single character. |
| </p> |
| </td> |
| <td> |
| <p> |
| "C" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 151 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| end of buffer operator. |
| </p> |
| </td> |
| <td> |
| <p> |
| "Z" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 152 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceded by an escape character represents |
| the continuation assertion. |
| </p> |
| </td> |
| <td> |
| <p> |
| "G" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 153 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character which when preceeded by (? indicates a zero width |
| negated forward lookahead assert. |
| </p> |
| </td> |
| <td> |
| <p> |
| ! |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p> |
| Custom error messages are loaded as follows: |
| </p> |
| <div class="informaltable"><table class="table"> |
| <colgroup> |
| <col> |
| <col> |
| <col> |
| </colgroup> |
| <thead><tr> |
| <th> |
| <p> |
| Message ID |
| </p> |
| </th> |
| <th> |
| <p> |
| Error message ID |
| </p> |
| </th> |
| <th> |
| <p> |
| Default string |
| </p> |
| </th> |
| </tr></thead> |
| <tbody> |
| <tr> |
| <td> |
| <p> |
| 201 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_NOMATCH |
| </p> |
| </td> |
| <td> |
| <p> |
| "No match" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 202 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_BADPAT |
| </p> |
| </td> |
| <td> |
| <p> |
| "Invalid regular expression" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 203 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_ECOLLATE |
| </p> |
| </td> |
| <td> |
| <p> |
| "Invalid collation character" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 204 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_ECTYPE |
| </p> |
| </td> |
| <td> |
| <p> |
| "Invalid character class name" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 205 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_EESCAPE |
| </p> |
| </td> |
| <td> |
| <p> |
| "Trailing backslash" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 206 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_ESUBREG |
| </p> |
| </td> |
| <td> |
| <p> |
| "Invalid back reference" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 207 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_EBRACK |
| </p> |
| </td> |
| <td> |
| <p> |
| "Unmatched [ or <code class="literal">" </code> |
| </p> |
| </td> |
| <td> |
| <p> |
| [208 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_EPAREN |
| </p> |
| </td> |
| <td> |
| <p> |
| "Unmatched ( or \(" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 209 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_EBRACE |
| </p> |
| </td> |
| <td> |
| <p> |
| "Unmatched \{" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 210 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_BADBR |
| </p> |
| </td> |
| <td> |
| <p> |
| "Invalid content of \{\}" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 211 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_ERANGE |
| </p> |
| </td> |
| <td> |
| <p> |
| "Invalid range end" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 212 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_ESPACE |
| </p> |
| </td> |
| <td> |
| <p> |
| "Memory exhausted" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 213 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_BADRPT |
| </p> |
| </td> |
| <td> |
| <p> |
| "Invalid preceding regular expression" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 214 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_EEND |
| </p> |
| </td> |
| <td> |
| <p> |
| "Premature end of regular expression" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 215 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_ESIZE |
| </p> |
| </td> |
| <td> |
| <p> |
| "Regular expression too big" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 216 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_ERPAREN |
| </p> |
| </td> |
| <td> |
| <p> |
| "Unmatched ) or \)" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 217 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_EMPTY |
| </p> |
| </td> |
| <td> |
| <p> |
| "Empty expression" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 218 |
| </p> |
| </td> |
| <td> |
| <p> |
| REG_E_UNKNOWN |
| </p> |
| </td> |
| <td> |
| <p> |
| "Unknown error" |
| </p> |
| </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| <td class="auto-generated"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p> |
| Custom character class names are loaded as followed: |
| </p> |
| <div class="informaltable"><table class="table"> |
| <colgroup> |
| <col> |
| <col> |
| <col> |
| </colgroup> |
| <thead><tr> |
| <th> |
| <p> |
| Message ID |
| </p> |
| </th> |
| <th> |
| <p> |
| Description |
| </p> |
| </th> |
| <th> |
| <p> |
| Equivalent default class name |
| </p> |
| </th> |
| </tr></thead> |
| <tbody> |
| <tr> |
| <td> |
| <p> |
| 300 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for alphanumeric characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "alnum" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 301 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for alphabetic characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "alpha" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 302 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for control characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "cntrl" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 303 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for digit characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "digit" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 304 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for graphics characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "graph" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 305 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for lower case characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "lower" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 306 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for printable characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "print" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 307 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for punctuation characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "punct" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 308 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for space characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "space" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 309 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for upper case characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "upper" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 310 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for hexadecimal characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "xdigit" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 311 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for blank characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "blank" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 312 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for word characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "word" |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p> |
| 313 |
| </p> |
| </td> |
| <td> |
| <p> |
| The character class name for Unicode characters. |
| </p> |
| </td> |
| <td> |
| <p> |
| "unicode" |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p> |
| Finally, custom collating element names are loaded starting from message |
| id 400, and terminating when the first load thereafter fails. Each message |
| looks something like: "tagname string" where tagname is the name |
| used inside [[.tagname.]] and string is the actual text of the collating |
| element. Note that the value of collating element [[.zero.]] is used for |
| the conversion of strings to numbers - if you replace this with another value |
| then that will be used for string parsing - for example use the Unicode character |
| 0x0660 for [[.zero.]] if you want to use Unicode Arabic-Indic digits in your |
| regular expressions in place of Latin digits. |
| </p> |
| <p> |
| Note that the POSIX defined names for character classes and collating elements |
| are always available - even if custom names are defined, in contrast, custom |
| error messages, and custom syntax messages replace the default ones. |
| </p> |
| </div> |
| <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> |
| <td align="left"></td> |
| <td align="right"><div class="copyright-footer">Copyright © 1998 -2010 John Maddock<p> |
| Distributed under the Boost Software License, Version 1.0. (See accompanying |
| file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) |
| </p> |
| </div></td> |
| </tr></table> |
| <hr> |
| <div class="spirit-nav"> |
| <a accesskey="p" href="headers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../background_information.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_safety.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> |
| </div> |
| </body> |
| </html> |