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
'
as an alternation separator.
|
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()
is zero.
|
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) |