Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::sub_match

      From cppreference.com
      <cpp‎ |regex
       
       
       
      Regular expressions library
      Classes
      sub_match
      (C++11)
      Algorithms
      Iterators
      Exceptions
      Traits
      Constants
      (C++11)
      Regex Grammar
       
       
      Defined in header<regex>
      template<class BidirIt>
      class sub_match;
      (since C++11)

      The class templatestd::sub_match is used by the regular expression engine to denote sequences of characters matched by marked sub-expressions.A match is a[beginend) 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 ofstd::sub_match are normally constructed and populated as a part of astd::match_results container during the processing of one of the regex algorithms.

      The member functions return defined default values unless thematched member istrue.

      std::sub_match inherits fromstd::pair<BidirIt, BidirIt>, although it cannot be treated as astd::pair object because member functions such as assignment will not work as expected.

      Contents

      [edit]Type requirements

      -
      BidirIt must meet the requirements ofLegacyBidirectionalIterator.

      [edit]Specializations

      Several specializations for common character sequence types are provided:

      Defined in header<regex>
      Type Definition
      std::csub_matchstd::sub_match<constchar*>
      std::wcsub_matchstd::sub_match<constwchar_t*>
      std::ssub_matchstd::sub_match<std::string::const_iterator>
      std::wssub_matchstd::sub_match<std::wstring::const_iterator>

      [edit]Nested types

      Type Definition
      iteratorBidirIt
      value_typestd::iterator_traits<BidirIt>::value_type
      difference_typestd::iterator_traits<BidirIt>::difference_type
      string_typestd::basic_string<value_type>

      [edit]Data members

      Member Description
      boolmatched
      whether this match was successful
      (public member object)

      Inherited fromstd::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

      constructs the match object
      (public member function)[edit]
      Observers
      returns the length of the match (if any)
      (public member function)[edit]
      converts to the underlying string type
      (public member function)[edit]
      compares matched subsequence (if any)
      (public member function)[edit]
      Modifiers
      swaps the contents
      (public member function)[edit]

      [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 asub_match with anothersub_match, a string, or a character
      (function template)[edit]
      outputs the matched character subsequence
      (function template)[edit]

      [edit]Example

      Run this code
      #include <cassert>#include <iostream>#include <regex>#include <string> int main(){std::string sentence{"Friday the thirteenth."};conststd::regex re{"([A-z]+) ([a-z]+) ([a-z]+)"};std::smatch words;std::regex_search(sentence, words, re);std::cout<<std::boolalpha;for(constauto& m: words){assert(m.matched);std::cout<<"m: ["<< m<<"], m.length(): "<< m.length()<<", ""*m.first: '"<<*m.first<<"', ""*m.second: '"<<*m.second<<"'\n";}}

      Output:

      m: [Friday the thirteenth], m.length(): 21, *m.first: 'F', *m.second: '.'m: [Friday], m.length(): 6, *m.first: 'F', *m.second: ' 'm: [the], m.length(): 3, *m.first: 't', *m.second: ' 'm: [thirteenth], m.length(): 10, *m.first: 't', *m.second: '.'

      [edit]See also

      iterates through the specified sub-expressions within all regex matches in a given string or through unmatched substrings
      (class template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/regex/sub_match&oldid=178384"

      [8]ページ先頭

      ©2009-2025 Movatter.jp