|
Boost.RegexBoost-Extended Format String Syntax |
|
Boost-Extended format strings treat all characters as literals except for '$', '\', '(', ')', '?', ':' and '\'.
The characters '(' and ')' perform lexical grouping, use \( and \) if you want a to output literal parenthesis.
The character '?' begins a conditional expression, the general form is:
?Ntrue-expression:false-expression
where N is decimal digit.
If sub-expression N was matched, then true-expression is evaluated and sent to output, otherwise false-expression is evaluated and sent to output.
You will normally need to surround a conditional-expression with parenthesis in order to prevent ambiguities.
Placeholder sequences specify that some part of what matched the regular expression should be sent to output as follows:
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. |
$' | Outputs all the text following the end of the current match. |
$$ | Outputs a literal '$' |
$n | Outputs what matched the n'th sub-expression. |
Any $-placeholder sequence not listed above, results in '$' being treated as a literal.
An escape character followed by any character x, outputs that character unless x is one of the escape sequences shown below.
Escape | Meaning |
\a | Outputs the bell character: '\a'. |
\e | Outputs the ANSI escape character (code point 27). |
\f | Outputs a form feed character: '\f' |
\n | Outputs a newline character: '\n'. |
\r | Outputs a carriage return character: '\r'. |
\t | Outputs a tab character: '\t'. |
\v | Outputs a vertical tab character: '\v'. |
\xDD | Outputs the character whose hexadecimal code point is 0xDD |
\x{DDDD} | Outputs the character whose hexadecimal code point is 0xDDDDD |
\cX | Outputs the ANSI escape sequence "escape-X". |
\D | If D is a decimal digit in the range 1-9, then outputs the text that matched sub-expression D. |
\l | Causes the next character to be outputted, to be output in lower case. |
\u | Causes the next character to be outputted, to be output in upper case. |
\L | Causes all subsequent characters to be output in lower case, until a \E is found. |
\U | Causes all subsequent characters to be output in upper case, until a \E is found. |
\E | Terminates a \L or \U sequence. |
Revised 24 Nov 2004
© Copyright John Maddock 2004
Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)