Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::basic_regex<CharT,Traits>::basic_regex

      From cppreference.com
      <cpp‎ |regex‎ |basic regex
       
       
       
      Regular expressions library
      Classes
      (C++11)
      Algorithms
      Iterators
      Exceptions
      Traits
      Constants
      (C++11)
      Regex Grammar
       
       
      basic_regex();
      (1)(since C++11)
      explicit basic_regex(const CharT* s,
                            flag_type f=std::regex_constants::ECMAScript);
      (2)(since C++11)
      basic_regex(const CharT* s,std::size_t count,
                   flag_type f=std::regex_constants::ECMAScript);
      (3)(since C++11)
      basic_regex(const basic_regex& other);
      (4)(since C++11)
      basic_regex( basic_regex&& other)noexcept;
      (5)(since C++11)
      template<class ST,class SA>

      explicit basic_regex(conststd::basic_string<CharT,ST,SA>& str,

                            flag_type f=std::regex_constants::ECMAScript);
      (6)(since C++11)
      template<class ForwardIt>

      basic_regex( ForwardIt first, ForwardIt last,

                   flag_type f=std::regex_constants::ECMAScript);
      (7)(since C++11)
      basic_regex(std::initializer_list<CharT> init,
                   flag_type f=std::regex_constants::ECMAScript);
      (8)(since C++11)

      Constructs a new regular expression from a sequence of characters interpreted according to the flagsf.

      1) Default constructor. Constructs an empty regular expression which will match nothing.
      2) Constructs a regex from a null-terminated strings.
      3) Constructs a regex from a sequence ofcount characters, pointed to bys.
      4) Copy constructor. Constructs a regex by copyingother.
      5) Move constructor. Constructs a regex with the contents ofother using move semantics.
      6) Constructs a regex from a stringstr.
      7) Range constructor. Constructs the string with the contents of the range[firstlast).
      8) Initializer list constructor. Constructs the string with the contents of the initializer listinit.

      [edit]Parameters

      s - pointer to a null-terminated string
      count - length of a character sequence used to initialize the regex
      first, last - range of a character sequence used to initialize the regex
      str - a basic_string used as a source used to initialize the regex
      other - another regex to use as source to initialize the regex
      init - initializer list used to initialize the regex
      f - flags used to guide the interpretation of the character sequence as a regular expression
      Type requirements
      -
      ForwardIt must meet the requirements ofLegacyForwardIterator.

      [edit]Exceptions

      1) May throw implementation-defined exceptions.
      2,3)std::regex_error if the supplied regular expression is not valid.
      4) May throw implementation-defined exceptions.
      6-8)std::regex_error if the supplied regular expression is not valid.

      [edit]Example

      Run this code
      #include <iomanip>#include <iostream>#include <regex>#include <string> void match_and_print(conststd::string& text,conststd::regex& pattern){std::sregex_iterator it(text.begin(), text.end(), pattern), it_end;int count=0;for(; it!= it_end;++it){conststd::smatch& match=*it;std::cout<<++count<<". "<<std::quoted(match.str())<<'\n';}std::cout<<(count?"\n":"no match found\n\n");} int main(){conststd::string text="Hello, World! 12345"; // Matches one or more digitsstd::string pattern_text="\\d+";std::cout<<"digits ("<< pattern_text<<"):\n";auto pattern=std::regex(pattern_text);    match_and_print(text, pattern); // Matches one or more characters split by space    pattern_text="[^\\s]+";std::cout<<"words ("<< pattern_text<<"):\n";    pattern=std::regex(pattern_text);    match_and_print(text, pattern); // Matches one or more characters split by space    pattern_text="[a-zA-Z]+";std::cout<<"words without symbols and digits ("<< pattern_text<<"):\n";    pattern=std::regex(pattern_text);    match_and_print(text, pattern); // Matches one non digits, non alphabet    pattern_text="[^0-9A-Za-z]";std::cout<<"symbol ("<< pattern_text<<"):\n";    pattern=std::regex(pattern_text);    match_and_print(text, pattern); // Matches one or more lowercase    pattern_text="[a-z]+";std::cout<<"lowercase ("<< pattern_text<<"):\n";    pattern=std::regex(pattern_text);    match_and_print(text, pattern); // Matches one or more lowercase with std::regex::icase flag    pattern_text="[a-z]+";std::cout<<"lowercase with ignore case flag ("<< pattern_text<<"):\n";    pattern=std::regex(pattern_text, std::regex::icase);    match_and_print(text, pattern); // Matches basic POSIX regular expression    pattern_text="[[:digit:]]+";std::cout<<"basic POSIX regex ("<< pattern_text<<"):\n";    pattern=std::regex(pattern_text, std::regex::basic);    match_and_print(text, pattern); // Matches extended POSIX regular expression    pattern_text="[[:digit:]]+";std::cout<<"extended POSIX regex ("<< pattern_text<<"):\n";    pattern=std::regex(pattern_text, std::regex::extended);    match_and_print(text, pattern);}

      Output:

      digits (\d+):1. "12345" words ([^\s]+):1. "Hello,"2. "World!"3. "12345" words without symbols and digits ([a-zA-Z]+):1. "Hello"2. "World" symbol ([^0-9A-Za-z]):1. ","2. " "3. "!"4. " " lowercase ([a-z]+):1. "ello"2. "orld" lowercase with ignore case flag ([a-z]+):1. "Hello"2. "World" basic POSIX regex ([[:digit:]]+):no match found extended POSIX regex ([[:digit:]]+):1. "12345"
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/regex/basic_regex/basic_regex&oldid=160997"

      [8]ページ先頭

      ©2009-2025 Movatter.jp