Difference between revisions of "cpp/regex/sub match"
(Added more description.) |
m (Minor tweak.) |
||
(26 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|sub_match}} | {{cpp/title|sub_match}} | ||
− | {{cpp/regex/sub_match/ | + | {{cpp/regex/sub_match/navbar}} |
− | {{ddcl | header=regex | | + | {{ddcl|header=regex|since=c++11| |
− | template< | + | template< class BidirIt > |
− | + | class sub_match; | |
− | + | ||
}} | }} | ||
− | The class template {{tt|sub_match}} is used by the regular expression engine to denote sequences of characters matched by marked sub-expressions. | + | The class template {{tt|std::sub_match}} is used by the regular expression engine to denote sequences of characters matched by marked sub-expressions. |
− | A match is a | + | A match is a {{range|begin|end}} pair within the target range matched by the regular expression, but with additional observer functions to enhance code clarity. |
− | Only the default constructor is publicly accessible | + | Only the default constructor is publicly accessible. Instances of {{tt|std::sub_match}} are normally constructed and populated as a part of a {{lc|std::match_results}} container during the processing of one of the regex algorithms. |
− | The member functions return defined default values unless the {{ | + | The member functions return defined default values unless the {{c|matched}} member is {{c|true}}. |
− | + | {{tt|std::sub_match}} inherits from {{c/core|std::pair<BidirIt, BidirIt>}}, although it cannot be treated as a {{lc|std::pair}} object because member functions such as assignment will not work as expected. | |
+ | ===Type requirements=== | ||
+ | {{par begin}} | ||
+ | {{par req named|BidirIt|BidirectionalIterator}} | ||
+ | {{par end}} | ||
+ | |||
+ | ===Specializations=== | ||
Several specializations for common character sequence types are provided: | Several specializations for common character sequence types are provided: | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc header|regex}} |
− | {{ | + | {{dsc hitem|Type|Definition}} |
− | {{ | + | {{dsc|{{tt|std::csub_match}}|{{c/core|std::sub_match<const char*>}}}} |
− | {{ | + | {{dsc|{{tt|std::wcsub_match}}|{{c/core|std::sub_match<const wchar_t*>}}}} |
− | {{ | + | {{dsc|{{tt|std::ssub_match}}|{{c/core|std::sub_match<std::string::const_iterator>}}}} |
− | {{ | + | {{dsc|{{tt|std::wssub_match}}|{{c/core|std::sub_match<std::wstring::const_iterator>}}}} |
− | {{ | + | {{dsc end}} |
− | === | + | ===Nested types=== |
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc hitem|Type|Definition}} |
− | {{ | + | {{dsc|{{tt|iterator}}|{{tt|BidirIt}}}} |
− | {{ | + | {{dsc|{{tt|value_type}}|{{c/core|std::iterator_traits<BidirIt>::value_type}}}} |
− | {{ | + | {{dsc|{{tt|difference_type}}|{{c/core|std::iterator_traits<BidirIt>::difference_type}}}} |
− | {{ | + | {{dsc|{{tt|string_type}}|{{c/core|std::basic_string<value_type>}}}} |
− | {{ | + | {{dsc end}} |
− | === | + | ===Data members=== |
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc hitem|Member|Description}} |
+ | {{dsc|{{dsc small|{{c/core|bool}}}} {{tt|matched}}|whether this match was successful}} | ||
+ | {{dsc end}} | ||
− | {{ | + | {{inherited|[[cpp/utility/pair|{{small|std::}}pair]]| |
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc mem obj|nolink=true|{{dsc small|BidirIt}} first|Start of the match sequence.}} |
− | {{ | + | {{dsc mem obj|nolink=true|{{dsc small|BidirIt}} second|One-past-the-end of the match sequence.}} |
− | {{ | + | {{dsc end}} |
+ | }} | ||
− | {{ | + | ===Member functions=== |
− | {{ | + | {{todo|Apply LWG 3204, add the swap() member function}} |
+ | {{dsc begin}} | ||
+ | {{dsc inc|cpp/regex/sub_match/dsc constructor}} | ||
+ | |||
+ | {{dsc h2|Observers}} | ||
+ | {{dsc inc|cpp/regex/sub_match/dsc length}} | ||
+ | {{dsc inc|cpp/regex/sub_match/dsc str}} | ||
+ | {{dsc inc|cpp/regex/sub_match/dsc compare}} | ||
+ | {{dsc end}} | ||
===Non-member functions=== | ===Non-member functions=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/regex/sub_match/dsc operator_cmp}} |
− | {{ | + | {{dsc inc|cpp/regex/sub_match/dsc operator_ltlt}} |
+ | {{dsc end}} | ||
+ | |||
+ | ===See also=== | ||
+ | {{dsc begin}} | ||
+ | {{dsc inc|cpp/regex/dsc regex_token_iterator}} | ||
+ | {{dsc end}} | ||
+ | |||
+ | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 01:04, 14 November 2024
Defined in header <regex>
|
||
template< class BidirIt > class sub_match; |
(since C++11) | |
The class template std::sub_match
is used by the regular expression engine to denote sequences of characters matched by marked sub-expressions.
A match is a [
begin,
end)
pair within the target range matched by the regular expression, but with additional observer functions to enhance code clarity.
Only the default constructor is publicly accessible. Instances of std::sub_match
are normally constructed and populated as a part of a std::match_results container during the processing of one of the regex algorithms.
The member functions return defined default values unless the matched member is true.
std::sub_match
inherits from std::pair<BidirIt, BidirIt>, although it cannot be treated as a std::pair object because member functions such as assignment will not work as expected.
Contents |
[edit] Type requirements
-BidirIt must meet the requirements of LegacyBidirectionalIterator.
|
[edit] Specializations
Several specializations for common character sequence types are provided:
Defined in header
<regex> | |
Type | Definition |
std::csub_match
|
std::sub_match<const char*> |
std::wcsub_match
|
std::sub_match<const wchar_t*> |
std::ssub_match
|
std::sub_match<std::string::const_iterator> |
std::wssub_match
|
std::sub_match<std::wstring::const_iterator> |
[edit] Nested types
Type | Definition |
iterator
|
BidirIt
|
value_type
|
std::iterator_traits<BidirIt>::value_type |
difference_type
|
std::iterator_traits<BidirIt>::difference_type |
string_type
|
std::basic_string<value_type> |
[edit] Data members
Member | Description |
bool matched
|
whether this match was successful |
Inherited from std::pair
BidirIt first |
Start of the match sequence. (public member object) |
BidirIt second |
One-past-the-end of the match sequence. (public member object) |
[edit] Member functions
This section is incomplete Reason: Apply LWG 3204, add the swap() member function |
constructs the match object (public member function) | |
Observers | |
returns the length of the match (if any) (public member function) | |
converts to the underlying string type (public member function) | |
compares matched subsequence (if any) (public member function) |
[edit] Non-member functions
(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(C++20) |
compares a sub_match with another sub_match , a string, or a character (function template) |
outputs the matched character subsequence (function template) |
[edit] See also
(C++11) |
iterates through the specified sub-expressions within all regex matches in a given string or through unmatched substrings (class template) |