Regular expressions library (since C++11)
From cppreference.com
< cpp
The regular expressions library provides a class that represents regular expressions, which are a kind of mini-language used to perform pattern matching within strings. Almost all operations with regexes can be characterized by operating on several of the following objects:
- Target sequence. The character sequence that is searched for a pattern. This may be a range specified by two iterators, a null-terminated character string or a std::string.
- Pattern. This is the regular expression itself. It determines what constitutes a match. It is an object of type std::basic_regex, constructed from a string with special grammar.
- Matched array. The information about matches may be retrieved as an object of type std::match_results.
- Replacement string. This is a string that determines how to replace the matches.
Contents |
[edit] Regular expression grammars
Patterns and replacement strings support the following regular expression grammars:
- Modified ECMAScript regular expression grammar. This is the default grammar.
- Basic POSIX regular expression grammar.
- Extended POSIX regular expression grammar.
- The regular expression grammar used by the awk utility in POSIX.
- The regular expression grammar used by the grep utility in POSIX. This is effectively the same as the basic POSIX regular expression grammar, with the addition of newline '\n' as an alternation separator.
- The regular expression grammar used by the grep utility, with the -E option, in POSIX. This is effectively the same as the extended POSIX regular expression grammar, with the addition of newline '\n' as an alternation separator in addition to '|'.
Some grammar variations (such as case-insensitive matching) are also avaliable, see this page for details.
[edit] Main classes
These classes encapsulate a regular expression and the results of matching a regular expression within a target sequence of characters.
(C++11) |
regular expression object (class template) |
(C++11) |
identifies the sequence of characters matched by a sub-expression (class template) |
(C++11) |
identifies one regular expression match, including all sub-expression matches (class template) |
[edit] Algorithms
These functions are used to apply the regular expression encapsulated in a regex to a target sequence of characters.
(C++11) |
attempts to match a regular expression to an entire character sequence (function template) |
(C++11) |
attempts to match a regular expression to any part of a character sequence (function template) |
(C++11) |
replaces occurrences of a regular expression with formatted replacement text (function template) |