Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / regex / doc / html / boost_regex / format / boost_format_syntax.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Boost-Extended Format String Syntax</title>
5 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../index.html" title="Boost.Regex 5.1.4">
8 <link rel="up" href="../format.html" title="Search and Replace Format String Syntax">
9 <link rel="prev" href="perl_format.html" title="Perl Format String Syntax">
10 <link rel="next" href="../ref.html" title="Reference">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="perl_format.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../format.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="../ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_regex.format.boost_format_syntax"></a><a class="link" href="boost_format_syntax.html" title="Boost-Extended Format String Syntax">Boost-Extended
28       Format String Syntax</a>
29 </h3></div></div></div>
30 <p>
31         Boost-Extended format strings treat all characters as literals except for
32         '$', '\', '(', ')', '?', and ':'.
33       </p>
34 <h5>
35 <a name="boost_regex.format.boost_format_syntax.h0"></a>
36         <span class="phrase"><a name="boost_regex.format.boost_format_syntax.grouping"></a></span><a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.grouping">Grouping</a>
37       </h5>
38 <p>
39         The characters '(' and ')' perform lexical grouping, so use \( and \) if
40         you want a to output literal parenthesis.
41       </p>
42 <h5>
43 <a name="boost_regex.format.boost_format_syntax.h1"></a>
44         <span class="phrase"><a name="boost_regex.format.boost_format_syntax.conditionals"></a></span><a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.conditionals">Conditionals</a>
45       </h5>
46 <p>
47         The character '?' begins a conditional expression, the general form is:
48       </p>
49 <p>
50         ?Ntrue-expression:false-expression
51       </p>
52 <p>
53         where N is decimal digit.
54       </p>
55 <p>
56         If sub-expression N was matched, then true-expression is evaluated and sent
57         to output, otherwise false-expression is evaluated and sent to output.
58       </p>
59 <p>
60         You will normally need to surround a conditional-expression with parenthesis
61         in order to prevent ambiguities.
62       </p>
63 <p>
64         For example, the format string "(?1foo:bar)" will replace each
65         match found with "foo" if the sub-expression $1 was matched, and
66         with "bar" otherwise.
67       </p>
68 <p>
69         For sub-expressions with an index greater than 9, or for access to named
70         sub-expressions use:
71       </p>
72 <p>
73         ?{INDEX}true-expression:false-expression
74       </p>
75 <p>
76         or
77       </p>
78 <p>
79         ?{NAME}true-expression:false-expression
80       </p>
81 <h5>
82 <a name="boost_regex.format.boost_format_syntax.h2"></a>
83         <span class="phrase"><a name="boost_regex.format.boost_format_syntax.placeholder_sequences"></a></span><a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.placeholder_sequences">Placeholder
84         Sequences</a>
85       </h5>
86 <p>
87         Placeholder sequences specify that some part of what matched the regular
88         expression should be sent to output as follows:
89       </p>
90 <div class="informaltable"><table class="table">
91 <colgroup>
92 <col>
93 <col>
94 </colgroup>
95 <thead><tr>
96 <th>
97                 <p>
98                   Placeholder
99                 </p>
100               </th>
101 <th>
102                 <p>
103                   Meaning
104                 </p>
105               </th>
106 </tr></thead>
107 <tbody>
108 <tr>
109 <td>
110                 <p>
111                   $&amp;
112                 </p>
113               </td>
114 <td>
115                 <p>
116                   Outputs what matched the whole expression.
117                 </p>
118               </td>
119 </tr>
120 <tr>
121 <td>
122                 <p>
123                   $MATCH
124                 </p>
125               </td>
126 <td>
127                 <p>
128                   As $&amp;
129                 </p>
130               </td>
131 </tr>
132 <tr>
133 <td>
134                 <p>
135                   ${^MATCH}
136                 </p>
137               </td>
138 <td>
139                 <p>
140                   As $&amp;
141                 </p>
142               </td>
143 </tr>
144 <tr>
145 <td>
146                 <p>
147                   $`
148                 </p>
149               </td>
150 <td>
151                 <p>
152                   Outputs the text between the end of the last match found (or the
153                   start of the text if no previous match was found), and the start
154                   of the current match.
155                 </p>
156               </td>
157 </tr>
158 <tr>
159 <td>
160                 <p>
161                   $PREMATCH
162                 </p>
163               </td>
164 <td>
165                 <p>
166                   As $`
167                 </p>
168               </td>
169 </tr>
170 <tr>
171 <td>
172                 <p>
173                   ${^PREMATCH}
174                 </p>
175               </td>
176 <td>
177                 <p>
178                   As $`
179                 </p>
180               </td>
181 </tr>
182 <tr>
183 <td>
184                 <p>
185                   $'
186                 </p>
187               </td>
188 <td>
189                 <p>
190                   Outputs all the text following the end of the current match.
191                 </p>
192               </td>
193 </tr>
194 <tr>
195 <td>
196                 <p>
197                   $POSTMATCH
198                 </p>
199               </td>
200 <td>
201                 <p>
202                   As $'
203                 </p>
204               </td>
205 </tr>
206 <tr>
207 <td>
208                 <p>
209                   ${^POSTMATCH}
210                 </p>
211               </td>
212 <td>
213                 <p>
214                   As $'
215                 </p>
216               </td>
217 </tr>
218 <tr>
219 <td>
220                 <p>
221                   $+
222                 </p>
223               </td>
224 <td>
225                 <p>
226                   Outputs what matched the last marked sub-expression in the regular
227                   expression.
228                 </p>
229               </td>
230 </tr>
231 <tr>
232 <td>
233                 <p>
234                   $LAST_PAREN_MATCH
235                 </p>
236               </td>
237 <td>
238                 <p>
239                   As $+
240                 </p>
241               </td>
242 </tr>
243 <tr>
244 <td>
245                 <p>
246                   $LAST_SUBMATCH_RESULT
247                 </p>
248               </td>
249 <td>
250                 <p>
251                   Outputs what matched the last sub-expression to be actually matched.
252                 </p>
253               </td>
254 </tr>
255 <tr>
256 <td>
257                 <p>
258                   $^N
259                 </p>
260               </td>
261 <td>
262                 <p>
263                   As $LAST_SUBMATCH_RESULT
264                 </p>
265               </td>
266 </tr>
267 <tr>
268 <td>
269                 <p>
270                   $$
271                 </p>
272               </td>
273 <td>
274                 <p>
275                   Outputs a literal '$'
276                 </p>
277               </td>
278 </tr>
279 <tr>
280 <td>
281                 <p>
282                   $n
283                 </p>
284               </td>
285 <td>
286                 <p>
287                   Outputs what matched the n'th sub-expression.
288                 </p>
289               </td>
290 </tr>
291 <tr>
292 <td>
293                 <p>
294                   ${n}
295                 </p>
296               </td>
297 <td>
298                 <p>
299                   Outputs what matched the n'th sub-expression.
300                 </p>
301               </td>
302 </tr>
303 <tr>
304 <td>
305                 <p>
306                   $+{NAME}
307                 </p>
308               </td>
309 <td>
310                 <p>
311                   Outputs whatever matched the sub-expression named "NAME".
312                 </p>
313               </td>
314 </tr>
315 </tbody>
316 </table></div>
317 <p>
318         Any $-placeholder sequence not listed above, results in '$' being treated
319         as a literal.
320       </p>
321 <h5>
322 <a name="boost_regex.format.boost_format_syntax.h3"></a>
323         <span class="phrase"><a name="boost_regex.format.boost_format_syntax.escape_sequences"></a></span><a class="link" href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.escape_sequences">Escape
324         Sequences</a>
325       </h5>
326 <p>
327         An escape character followed by any character x, outputs that character unless
328         x is one of the escape sequences shown below.
329       </p>
330 <div class="informaltable"><table class="table">
331 <colgroup>
332 <col>
333 <col>
334 </colgroup>
335 <thead><tr>
336 <th>
337                 <p>
338                   Escape
339                 </p>
340               </th>
341 <th>
342                 <p>
343                   Meaning
344                 </p>
345               </th>
346 </tr></thead>
347 <tbody>
348 <tr>
349 <td>
350                 <p>
351                   \a
352                 </p>
353               </td>
354 <td>
355                 <p>
356                   Outputs the bell character: '\a'.
357                 </p>
358               </td>
359 </tr>
360 <tr>
361 <td>
362                 <p>
363                   \e
364                 </p>
365               </td>
366 <td>
367                 <p>
368                   Outputs the ANSI escape character (code point 27).
369                 </p>
370               </td>
371 </tr>
372 <tr>
373 <td>
374                 <p>
375                   \f
376                 </p>
377               </td>
378 <td>
379                 <p>
380                   Outputs a form feed character: '\f'
381                 </p>
382               </td>
383 </tr>
384 <tr>
385 <td>
386                 <p>
387                   \n
388                 </p>
389               </td>
390 <td>
391                 <p>
392                   Outputs a newline character: '\n'.
393                 </p>
394               </td>
395 </tr>
396 <tr>
397 <td>
398                 <p>
399                   \r
400                 </p>
401               </td>
402 <td>
403                 <p>
404                   Outputs a carriage return character: '\r'.
405                 </p>
406               </td>
407 </tr>
408 <tr>
409 <td>
410                 <p>
411                   \t
412                 </p>
413               </td>
414 <td>
415                 <p>
416                   Outputs a tab character: '\t'.
417                 </p>
418               </td>
419 </tr>
420 <tr>
421 <td>
422                 <p>
423                   \v
424                 </p>
425               </td>
426 <td>
427                 <p>
428                   Outputs a vertical tab character: '\v'.
429                 </p>
430               </td>
431 </tr>
432 <tr>
433 <td>
434                 <p>
435                   \xDD
436                 </p>
437               </td>
438 <td>
439                 <p>
440                   Outputs the character whose hexadecimal code point is 0xDD
441                 </p>
442               </td>
443 </tr>
444 <tr>
445 <td>
446                 <p>
447                   \x{DDDD}
448                 </p>
449               </td>
450 <td>
451                 <p>
452                   Outputs the character whose hexadecimal code point is 0xDDDDD
453                 </p>
454               </td>
455 </tr>
456 <tr>
457 <td>
458                 <p>
459                   \cX
460                 </p>
461               </td>
462 <td>
463                 <p>
464                   Outputs the ANSI escape sequence "escape-X".
465                 </p>
466               </td>
467 </tr>
468 <tr>
469 <td>
470                 <p>
471                   \D
472                 </p>
473               </td>
474 <td>
475                 <p>
476                   If D is a decimal digit in the range 1-9, then outputs the text
477                   that matched sub-expression D.
478                 </p>
479               </td>
480 </tr>
481 <tr>
482 <td>
483                 <p>
484                   \l
485                 </p>
486               </td>
487 <td>
488                 <p>
489                   Causes the next character to be outputted, to be output in lower
490                   case.
491                 </p>
492               </td>
493 </tr>
494 <tr>
495 <td>
496                 <p>
497                   \u
498                 </p>
499               </td>
500 <td>
501                 <p>
502                   Causes the next character to be outputted, to be output in upper
503                   case.
504                 </p>
505               </td>
506 </tr>
507 <tr>
508 <td>
509                 <p>
510                   \L
511                 </p>
512               </td>
513 <td>
514                 <p>
515                   Causes all subsequent characters to be output in lower case, until
516                   a \E is found.
517                 </p>
518               </td>
519 </tr>
520 <tr>
521 <td>
522                 <p>
523                   \U
524                 </p>
525               </td>
526 <td>
527                 <p>
528                   Causes all subsequent characters to be output in upper case, until
529                   a \E is found.
530                 </p>
531               </td>
532 </tr>
533 <tr>
534 <td>
535                 <p>
536                   \E
537                 </p>
538               </td>
539 <td>
540                 <p>
541                   Terminates a \L or \U sequence.
542                 </p>
543               </td>
544 </tr>
545 </tbody>
546 </table></div>
547 </div>
548 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
549 <td align="left"></td>
550 <td align="right"><div class="copyright-footer">Copyright &#169; 1998-2013 John Maddock<p>
551         Distributed under the Boost Software License, Version 1.0. (See accompanying
552         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>)
553       </p>
554 </div></td>
555 </tr></table>
556 <hr>
557 <div class="spirit-nav">
558 <a accesskey="p" href="perl_format.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../format.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="../ref.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
559 </div>
560 </body>
561 </html>