regex_constants namespace
Namespace for regular expression flags.
Syntax
namespace regex_constants {
enum syntax_option_type;
enum match_flag_type;
enum error_type;
}
Remarks
The namespace regex_constants
encapsulates several flag types and their associated flag values.
Name | Description |
---|---|
error_type | Flags for reporting regular expression syntax errors. |
match_flag_type | Flags for regular expression matching options. |
syntax_option_type | Flags for selecting syntax options. |
Requirements
Header: <regex>
Namespace: std
regex_constants::error_type
Flags for reporting regular expression syntax errors.
enum error_type
{ // identify error
error_collate,
error_ctype,
error_escape,
error_backref,
error_brack,
error_paren,
error_brace,
error_badbrace,
error_range,
error_space,
error_badrepeat,
error_complexity,
error_stack,
error_parse,
error_syntax
};
Remarks
The type is an enumerated type that describes an object that can hold error flags. The distinct flag values are:
error_backref
-- the expression contained an invalid back reference
error_badbrace
-- the expression contained an invalid count in a { } expression
error_badrepeat
-- a repeat expression (one of '*', '', '+', '{' in most contexts) was not preceded by an expression
error_brace
-- the expression contained an unmatched '{' or '}'
error_brack
-- the expression contained an unmatched '[' or ']'
error_collate
-- the expression contained an invalid collating element name
error_complexity
-- an attempted match failed because it was too complex
error_ctype
-- the expression contained an invalid character class name
error_escape
-- the expression contained an invalid escape sequence
error_paren
-- the expression contained an unmatched '(' or ')'
error_parse
-- the expression failed to parse
error_range
-- the expression contained an invalid character range specifier
error_space
-- parsing a regular expression failed because there were not enough resources available
error_stack
-- an attempted match failed because there was not enough memory available
error_syntax
-- parsing failed on a syntax error
error_backref
-- the expression contained an invalid back reference
regex_constants::match_flag_type
Flags for regular expression matching options.
enum match_flag_type
{ // specify matching and formatting rules
match_default = 0x0000,
match_not_bol = 0x0001,
match_not_eol = 0x0002,
match_not_bow = 0x0004,
match_not_eow = 0x0008,
match_any = 0x0010,
match_not_null = 0x0020,
match_continuous = 0x0040,
match_prev_avail = 0x0100,
format_default = 0x0000,
format_sed = 0x0400,
format_no_copy = 0x0800,
format_first_only = 0x1000,
_Match_not_null = 0x2000
};
Remarks
The type is a bitmask type that describes options to be used when matching a text sequence against a regular expression and format flags to be used when replacing text. Options can be combined with |
.
The match options are:
match_default
match_not_bol
-- do not treat the first position in the target sequence as the beginning of a line
match_not_eol
-- do not treat the past-the-end position in the target sequence as the end of a line
match_not_bow
-- do not treat the first position in the target sequence as the beginning of a word
match_not_eow
-- do not treat the past-the-end position in the target sequence as the end of a word
match_any
-- if more than one match is possible any match is acceptable
match_not_null
-- do not treat an empty subsequence as a match
match_continuous
-- do not search for matches other than at the beginning of the target sequence
match_prev_avail
-- --first
is a valid iterator; ignore match_not_bol
and match_not_bow
if set
The format flags are:
format_default
-- use ECMAScript format rules
format_sed
-- use sed format rules
format_no_copy
-- do not copy text that does not match the regular expression
format_first_only
-- do not search for matches after the first one
regex_constants::syntax_option_type
Flags for selecting syntax options.
enum syntax_option_type
{ // specify RE syntax rules
ECMAScript = 0x01,
basic = 0x02,
extended = 0x04,
awk = 0x08,
grep = 0x10,
egrep = 0x20,
_Gmask = 0x3F,
icase = 0x0100,
nosubs = 0x0200,
optimize = 0x0400,
collate = 0x0800
};
Remarks
The type is a bitmask type that describes language specifiers and syntax modifiers to be used when compiling a regular expression. Options can be combined with |
. No more than one language specifier should be used at a time.
The language specifiers are:
ECMAScript
-- compile as ECMAScript
basic
-- compile as BRE
extended
-- compile as ERE
awk
-- compile as awk
grep
-- compile as grep
egrep
-- compile as egrep
The syntax modifiers are:
icase
-- make matches case-insensitive
nosubs
-- the implementaton need not keep track of the contents of capture groups
optimize
-- the implementation should emphasize speed of matching rather than speed of regular expression compilation
collate
-- make matches locale-sensitive
See also
<regex>
regex_error Class
<regex> functions
regex_iterator Class
<regex> operators
regex_token_iterator Class
regex_traits Class
<regex> typedefs