Difference between revisions of "cpp/regex/sub match"
m (Use since= and until= params of {{ddcl}} template.) |
m (Minor tweak.) |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|sub_match}} | {{cpp/title|sub_match}} | ||
{{cpp/regex/sub_match/navbar}} | {{cpp/regex/sub_match/navbar}} | ||
− | {{ddcl | header=regex | since=c++11 | | + | {{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 {{c|matched}} member is {{ | + | The member functions return defined default values unless the {{c|matched}} member is {{c|true}}. |
− | {{tt|sub_match}} inherits from {{c|std::pair<BidirIt, BidirIt>}}, although it cannot be treated as a {{lc|std::pair}} object because member functions such as | + | {{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=== | ===Type requirements=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par req | + | {{par req named|BidirIt|BidirectionalIterator}} |
{{par end}} | {{par end}} | ||
Line 25: | Line 24: | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc header | regex}} | + | {{dsc header|regex}} |
− | {{dsc hitem | Type | Definition}} | + | {{dsc hitem|Type|Definition}} |
− | {{dsc | {{tt|csub_match}} | {{c|sub_match<const char*>}}}} | + | {{dsc|{{tt|std::csub_match}}|{{c/core|std::sub_match<const char*>}}}} |
− | {{dsc | {{tt|wcsub_match}} | {{c|sub_match<const wchar_t*>}}}} | + | {{dsc|{{tt|std::wcsub_match}}|{{c/core|std::sub_match<const wchar_t*>}}}} |
− | {{dsc | {{tt|ssub_match}} | {{c|sub_match<std::string::const_iterator>}}}} | + | {{dsc|{{tt|std::ssub_match}}|{{c/core|std::sub_match<std::string::const_iterator>}}}} |
− | {{dsc | {{tt|wssub_match}} | {{c|sub_match<std::wstring::const_iterator>}}}} | + | {{dsc|{{tt|std::wssub_match}}|{{c/core|std::sub_match<std::wstring::const_iterator>}}}} |
{{dsc end}} | {{dsc end}} | ||
− | === | + | ===Nested types=== |
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc hitem | | + | {{dsc hitem|Type|Definition}} |
− | {{dsc | {{tt|iterator}} | {{ | + | {{dsc|{{tt|iterator}}|{{tt|BidirIt}}}} |
− | {{dsc | {{tt|value_type}} | {{c|std::iterator_traits<BidirIt>::value_type}}}} | + | {{dsc|{{tt|value_type}}|{{c/core|std::iterator_traits<BidirIt>::value_type}}}} |
− | {{dsc | {{tt|difference_type}} | {{c|std::iterator_traits<BidirIt>::difference_type}}}} | + | {{dsc|{{tt|difference_type}}|{{c/core|std::iterator_traits<BidirIt>::difference_type}}}} |
− | {{dsc | {{tt|string_type}} | {{c|std::basic_string<value_type>}}}} | + | {{dsc|{{tt|string_type}}|{{c/core|std::basic_string<value_type>}}}} |
{{dsc end}} | {{dsc end}} | ||
− | === | + | ===Data members=== |
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc| {{tt|matched}} | | + | {{dsc hitem|Member|Description}} |
+ | {{dsc|{{dsc small|{{c/core|bool}}}} {{tt|matched}}|whether this match was successful}} | ||
{{dsc end}} | {{dsc end}} | ||
− | {{inherited | [[cpp/utility/pair | {{small|std::}}pair]] | | + | |
+ | {{inherited|[[cpp/utility/pair|{{small|std::}}pair]]| | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc| {{ | + | {{dsc mem obj|nolink=true|{{dsc small|BidirIt}} first|Start of the match sequence.}} |
− | {{dsc| {{ | + | {{dsc mem obj|nolink=true|{{dsc small|BidirIt}} second|One-past-the-end of the match sequence.}} |
{{dsc end}} | {{dsc end}} | ||
}} | }} | ||
===Member functions=== | ===Member functions=== | ||
+ | {{todo|Apply LWG 3204, add the swap() member function}} | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/regex/sub_match/dsc constructor}} | + | {{dsc inc|cpp/regex/sub_match/dsc constructor}} |
− | {{dsc h2 | Observers}} | + | {{dsc h2|Observers}} |
− | {{dsc inc | cpp/regex/sub_match/dsc length}} | + | {{dsc inc|cpp/regex/sub_match/dsc length}} |
− | {{dsc inc | cpp/regex/sub_match/dsc str}} | + | {{dsc inc|cpp/regex/sub_match/dsc str}} |
− | {{dsc inc | cpp/regex/sub_match/dsc compare}} | + | {{dsc inc|cpp/regex/sub_match/dsc compare}} |
{{dsc end}} | {{dsc end}} | ||
===Non-member functions=== | ===Non-member functions=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/regex/sub_match/dsc operator_cmp}} | + | {{dsc inc|cpp/regex/sub_match/dsc operator_cmp}} |
− | {{dsc | + | {{dsc inc|cpp/regex/sub_match/dsc operator_ltlt}} |
{{dsc end}} | {{dsc end}} | ||
===See also=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc | + | {{dsc inc|cpp/regex/dsc regex_token_iterator}} |
{{dsc end}} | {{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) |