std::basic_regex
Defined in header <regex>
|
||
template
<
class CharT, |
(since C++11) | |
The class template basic_regex
provides a general framework for holding regular expressions.
Several typedefs for common character types are provided:
Defined in header
<regex> | |
Type | Definition |
std::regex
|
std::basic_regex<char> |
std::wregex
|
std::basic_regex<wchar_t> |
Member types
Member type | Definition |
value_type
|
CharT
|
traits_type
|
Traits
|
string_type
|
Traits::string_type
|
locale_type
|
Traits::locale_type
|
flag_type
|
std::regex_constants::syntax_option_type |
Member functions
constructs the regex object (public member function) |
|
destructs the regex object (public member function) |
|
assigns the contents (public member function) |
|
assigns the contents (public member function) |
|
Observers | |
returns the number of marked sub-expressions within the regular expression (public member function) |
|
returns the syntax flags (public member function) |
|
Locale | |
get locale information (public member function) |
|
set locale information (public member function) |
|
Modifiers | |
swaps the contents (public member function) |
|
Constants |
Grammar option | Effect(s) |
ECMAScript
|
Use the Modified ECMAScript regular expression grammar. |
basic
|
Use the basic POSIX regular expression grammar (grammar documentation). |
extended
|
Use the extended POSIX regular expression grammar (grammar documentation). |
awk
|
Use the regular expression grammar used by the awk utility in POSIX (grammar documentation). |
grep
|
Use the regular expression grammar used by the grep utility in POSIX. This is effectively the same as the basic option with the addition of newline '\n'
|
egrep
|
Use the regular expression grammar used by the grep utility, with the -E option, in POSIX. This is effectively the same as the extended option with the addition of newline '\n' as an alternation separator in addition to '|'
|
Grammar variation | Effect(s) |
icase
|
Character matching should be performed without regard to case. |
nosubs
|
When performing matches, all marked sub-expressions (expr) are treated as non-marking sub-expressions (?:expr) . No matches are stored in the supplied std::regex_match structure and mark_count()
|
optimize
|
Instructs the regular expression engine to make matching faster, with the potential cost of making construction slower. For example, this might mean converting a non-deterministic FSA to a deterministic FSA. |
collate
|
Character ranges of the form "[a-b]" will be locale sensitive. |
multiline (C++17)
|
Specifies that ^ shall match the beginning of a line and $ shall match the end of a line, if the ECMAScript engine is selected.
|
At most one grammar option can be chosen out of ECMAScript
, basic
, extended
, awk
, grep
, egrep
. If no grammar is chosen, ECMAScript
is assumed to be selected. The other options serve as variations, such that
std::
regex
(
"meow", std::
regex
::
icase
)
is equivalent to
std::
regex
(
"meow", std::
regex
::
ECMAScript
|std::
regex
::
icase
)
The member constants in basic_regex
are duplicates of the syntax_option_type
constants defined in the namespace std::regex_constants
Non-member functions
(C++11)
|
specializes the std::swap algorithm (function template) |