Share via


basic_regex::operator=

 

Assigns a value to the regular expression object.

Syntax

basic_regex& operator=(const basic_regex& right);
basic_regex& operator=(const Elem *str);
template<class STtraits, class STalloc>
    basic_regex& operator=(const basic_string<Elem, STtraits, STalloc>& str);

Parameters

  • STtraits
    Traits class for a string source.

  • STalloc
    Allocator class for a string source.

  • right
    Regex source to copy.

  • str
    String to copy.

Remarks

The operators each replace the regular expression held by *this with the regular expression described by the operand sequence, then return *this.

Example

 

// std_tr1__regex__basic_regex_operator_as.cpp 
// compile with: /EHsc 
#include <regex> 
#include <iostream> 

int main() 
    { 
    std::regex::value_type elem = 'x'; 
    std::regex::flag_type flag = std::regex::grep; 

    elem = elem;  // to quiet "unused" warnings 
    flag = flag; 

// constructors 
    std::regex rx0; 
    std::cout << "match(\"abc\", \"\") == " << std::boolalpha 
        << regex_match("abc", rx0) << std::endl; 

    std::regex rx1("abcd", std::regex::ECMAScript); 
    std::cout << "match(\"abc\", \"abcd\") == " << std::boolalpha 
        << regex_match("abc", rx1) << std::endl; 

    std::regex rx2("abcd", 3); 
    std::cout << "match(\"abc\", \"abc\") == " << std::boolalpha 
        << regex_match("abc", rx2) << std::endl; 

    std::regex rx3(rx2); 
    std::cout << "match(\"abc\", \"abc\") == " << std::boolalpha 
        << regex_match("abc", rx3) << std::endl; 

    std::string str("abcd"); 
    std::regex rx4(str); 
    std::cout << "match(string(\"abcd\"), \"abc\") == " << std::boolalpha 
        << regex_match("abc", rx4) << std::endl; 

    std::regex rx5(str.begin(), str.end() - 1); 
    std::cout << "match(string(\"abc\"), \"abc\") == " << std::boolalpha 
        << regex_match("abc", rx5) << std::endl; 
    std::cout << std::endl; 

// assignments 
    rx0 = "abc"; 
    rx0 = rx1; 
    rx0 = str; 

    rx0.assign("abcd", std::regex::ECMAScript); 
    rx0.assign("abcd", 3); 
    rx0.assign(rx1); 
    rx0.assign(str); 
    rx0.assign(str.begin(), str.end() - 1); 

    rx0.swap(rx1); 

// mark_count 
    std::cout << "\"abc\" mark_count == " 
        << std::regex("abc").mark_count() << std::endl; 
    std::cout << "\"(abc)\" mark_count == " 
        << std::regex("(abc)").mark_count() << std::endl; 

// locales 
    std::regex::locale_type loc = rx0.imbue(std::locale()); 
    std::cout << "getloc == imbued == " << std::boolalpha 
        << (loc == rx0.getloc()) << std::endl; 

    return (0); 
    } 
match("abc", "") == false
match("abc", "abcd") == false
match("abc", "abc") == true
match("abc", "abc") == true
match(string("abcd"), "abc") == false
match(string("abc"), "abc") == true

"abc" mark_count == 0
"(abc)" mark_count == 1
getloc == imbued == true

Requirements

Header: <regex>

Namespace: std

See Also

<regex>
basic_regex Class
basic_regex::assign