basic_regex::operator=

Assigns a value to the regular expression object.

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::tr1::regex::value_type elem = 'x'; 
    std::tr1::regex::flag_type flag = std::tr1::regex::grep; 
 
    elem = elem;  // to quiet "unused" warnings 
    flag = flag; 
 
// constructors 
    std::tr1::regex rx0; 
    std::cout << "match(\"abc\", \"\") == " << std::boolalpha 
        << regex_match("abc", rx0) << std::endl; 
 
    std::tr1::regex rx1("abcd", std::tr1::regex::ECMAScript); 
    std::cout << "match(\"abc\", \"abcd\") == " << std::boolalpha 
        << regex_match("abc", rx1) << std::endl; 
 
    std::tr1::regex rx2("abcd", 3); 
    std::cout << "match(\"abc\", \"abc\") == " << std::boolalpha 
        << regex_match("abc", rx2) << std::endl; 
 
    std::tr1::regex rx3(rx2); 
    std::cout << "match(\"abc\", \"abc\") == " << std::boolalpha 
        << regex_match("abc", rx3) << std::endl; 
 
    std::string str("abcd"); 
    std::tr1::regex rx4(str); 
    std::cout << "match(string(\"abcd\"), \"abc\") == " << std::boolalpha 
        << regex_match("abc", rx4) << std::endl; 
 
    std::tr1::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::tr1::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::tr1::regex("abc").mark_count() << std::endl; 
    std::cout << "\"(abc)\" mark_count == " 
        << std::tr1::regex("(abc)").mark_count() << std::endl; 
 
// locales 
    std::tr1::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::tr1

See Also

Reference

<regex>

basic_regex Class

basic_regex::assign