Exemplo n.º 1
0
int main()
{
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book),
                                     phone_numbers, -1);
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "start ");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == ", ");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == ", ");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == " end");
        ++i;
        assert(i == std::cregex_token_iterator());
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book),
                                     phone_numbers);
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-1234");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-2345");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-3456");
        ++i;
        assert(i == std::cregex_token_iterator());
    }
    {
        std::regex phone_numbers("\\d{3}-(\\d{4})");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book),
                                     phone_numbers, 1);
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "1234");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "2345");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "3456");
        ++i;
        assert(i == std::cregex_token_iterator());
    }
}
Exemplo n.º 2
0
int main()
{
    {
        std::regex phone_numbers("\\d{3}-(\\d{4})");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        const int indices[] = {-1, 0, 1};
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                     std::regex("\\d{3}-\\d{4}"), indices);
    }
}
Exemplo n.º 3
0
int main(int, char**)
{
    {
         std::regex phone_numbers("\\d{3}-(\\d{4})");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::vector<int> v;
        v.push_back(-1);
        v.push_back(-1);
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                     std::regex("\\d{3}-\\d{4}"), v);
    }

  return 0;
}
Exemplo n.º 4
0
int main(int, char**)
{
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        std::string phone_book("555-1234, 555-2345, 555-3456");
        std::string r = std::regex_replace(phone_book, phone_numbers,
                                           "123-$&");
        assert(r == "123-555-1234, 123-555-2345, 123-555-3456");
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        std::string phone_book("555-1234, 555-2345, 555-3456");
        std::string r = std::regex_replace(phone_book, phone_numbers,
                                           "123-$&",
                                           std::regex_constants::format_sed);
        assert(r == "123-$555-1234, 123-$555-2345, 123-$555-3456");
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        std::string phone_book("555-1234, 555-2345, 555-3456");
        std::string r = std::regex_replace(phone_book, phone_numbers,
                                           "123-&",
                                           std::regex_constants::format_sed);
        assert(r == "123-555-1234, 123-555-2345, 123-555-3456");
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        std::string phone_book("555-1234, 555-2345, 555-3456");
        std::string r = std::regex_replace(phone_book, phone_numbers,
                                           "123-$&",
                                           std::regex_constants::format_no_copy);
        assert(r == "123-555-1234123-555-2345123-555-3456");
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        std::string phone_book("555-1234, 555-2345, 555-3456");
        std::string r = std::regex_replace(phone_book, phone_numbers,
                                           "123-$&",
                                           std::regex_constants::format_first_only);
        assert(r == "123-555-1234, 555-2345, 555-3456");
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        std::string phone_book("555-1234, 555-2345, 555-3456");
        std::string r = std::regex_replace(phone_book, phone_numbers,
                                           "123-$&",
                                           std::regex_constants::format_first_only |
                                           std::regex_constants::format_no_copy);
        assert(r == "123-555-1234");
    }

  return 0;
}
Exemplo n.º 5
0
int main(int, char**)
{
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                     phone_numbers, -1);
        assert(i != std::cregex_token_iterator());
        assert(!(i == std::cregex_token_iterator()));
        std::cregex_token_iterator i2 = i;
        assert(i2 == i);
        assert(!(i2 != i));
        ++i;
        assert(!(i2 == i));
        assert(i2 != i);
    }

  return 0;
}
Exemplo n.º 6
0
int main()
{
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
    {
        std::regex phone_numbers("\\d{3}-(\\d{4})");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book),
                                     phone_numbers, {-1, 0, 1});
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "start ");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-1234");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "1234");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == ", ");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-2345");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "2345");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == ", ");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-3456");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "3456");
        ++i;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == " end");
        ++i;
        assert(i == std::cregex_token_iterator());
    }
#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
}
Exemplo n.º 7
0
int main()
{
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "555-1234, 555-2345, 555-3456";
        std::cregex_iterator i(std::begin(phone_book), std::end(phone_book), phone_numbers);
        assert(i != std::cregex_iterator());
        assert((*i).size() == 1);
        assert((*i).position() == 0);
        assert((*i).str() == "555-1234");
        ++i;
        assert(i != std::cregex_iterator());
        assert((*i).size() == 1);
        assert((*i).position() == 10);
        assert((*i).str() == "555-2345");
        ++i;
        assert(i != std::cregex_iterator());
        assert((*i).size() == 1);
        assert((*i).position() == 20);
        assert((*i).str() == "555-3456");
        ++i;
        assert(i == std::cregex_iterator());
    }
}
Exemplo n.º 8
0
int main()
{
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "555-1234, 555-2345, 555-3456";
        typedef output_iterator<char*> Out;
        typedef bidirectional_iterator<const char*> Bi;
        char buf[100] = {0};
        Out r = std::regex_replace(Out(buf), Bi(std::begin(phone_book)),
                                    Bi(std::end(phone_book)-1), phone_numbers,
                                    "123-$&");
        assert(r.base() == buf+40);
        assert(buf == std::string("123-555-1234, 123-555-2345, 123-555-3456"));
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "555-1234, 555-2345, 555-3456";
        typedef output_iterator<char*> Out;
        typedef bidirectional_iterator<const char*> Bi;
        char buf[100] = {0};
        Out r = std::regex_replace(Out(buf), Bi(std::begin(phone_book)),
                                    Bi(std::end(phone_book)-1), phone_numbers,
                                    "123-$&",
                                    std::regex_constants::format_sed);
        assert(r.base() == buf+43);
        assert(buf == std::string("123-$555-1234, 123-$555-2345, 123-$555-3456"));
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "555-1234, 555-2345, 555-3456";
        typedef output_iterator<char*> Out;
        typedef bidirectional_iterator<const char*> Bi;
        char buf[100] = {0};
        Out r = std::regex_replace(Out(buf), Bi(std::begin(phone_book)),
                                    Bi(std::end(phone_book)-1), phone_numbers,
                                    "123-&",
                                    std::regex_constants::format_sed);
        assert(r.base() == buf+40);
        assert(buf == std::string("123-555-1234, 123-555-2345, 123-555-3456"));
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "555-1234, 555-2345, 555-3456";
        typedef output_iterator<char*> Out;
        typedef bidirectional_iterator<const char*> Bi;
        char buf[100] = {0};
        Out r = std::regex_replace(Out(buf), Bi(std::begin(phone_book)),
                                    Bi(std::end(phone_book)-1), phone_numbers,
                                    "123-$&",
                                    std::regex_constants::format_no_copy);
        assert(r.base() == buf+36);
        assert(buf == std::string("123-555-1234123-555-2345123-555-3456"));
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "555-1234, 555-2345, 555-3456";
        typedef output_iterator<char*> Out;
        typedef bidirectional_iterator<const char*> Bi;
        char buf[100] = {0};
        Out r = std::regex_replace(Out(buf), Bi(std::begin(phone_book)),
                                    Bi(std::end(phone_book)-1), phone_numbers,
                                    "123-$&",
                                    std::regex_constants::format_first_only);
        assert(r.base() == buf+32);
        assert(buf == std::string("123-555-1234, 555-2345, 555-3456"));
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "555-1234, 555-2345, 555-3456";
        typedef output_iterator<char*> Out;
        typedef bidirectional_iterator<const char*> Bi;
        char buf[100] = {0};
        Out r = std::regex_replace(Out(buf), Bi(std::begin(phone_book)),
                                    Bi(std::end(phone_book)-1), phone_numbers,
                                    "123-$&",
                                    std::regex_constants::format_first_only |
                                    std::regex_constants::format_no_copy);
        assert(r.base() == buf+12);
        assert(buf == std::string("123-555-1234"));
    }
}
Exemplo n.º 9
0
int main(int, char**)
{
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                     phone_numbers, -1);
        std::cregex_token_iterator i2 = i;
        std::cregex_token_iterator i3;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i->str() == "start ");
        assert(i2->str() == "start ");
        i3 = i++;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i->str() == ", ");
        assert(i2->str() == "start ");
        assert(i3->str() == "start ");
        i3 = i++;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i->str() == ", ");
        assert(i2->str() == "start ");
        assert(i3->str() == ", ");
        i3 = i++;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i->str() == " end");
        assert(i2->str() == "start ");
        assert(i3->str() == ", ");
        i3 = i++;
        assert(i  == std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i2->str() == "start ");
        assert(i3->str() == " end");
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                     phone_numbers, -1);
        std::cregex_token_iterator i2 = i;
        std::cregex_token_iterator i3;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i->str() == "start ");
        assert(i2->str() == "start ");
        i3 = i;
        ++i;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i->str() == ", ");
        assert(i2->str() == "start ");
        assert(i3->str() == "start ");
        i3 = i;
        ++i;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i->str() == ", ");
        assert(i2->str() == "start ");
        assert(i3->str() == ", ");
        i3 = i;
        ++i;
        assert(i  != std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i->str() == " end");
        assert(i2->str() == "start ");
        assert(i3->str() == ", ");
        i3 = i;
        ++i;
        assert(i  == std::cregex_token_iterator());
        assert(i2 != std::cregex_token_iterator());
        assert(i3 != std::cregex_token_iterator());
        assert(i2->str() == "start ");
        assert(i3->str() == " end");
    }
    {
        std::regex phone_numbers("\\d{3}-\\d{4}");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                     phone_numbers);
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-1234");
        i++;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-2345");
        i++;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "555-3456");
        i++;
        assert(i == std::cregex_token_iterator());
    }
    {
        std::regex phone_numbers("\\d{3}-(\\d{4})");
        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                     phone_numbers, 1);
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "1234");
        i++;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "2345");
        i++;
        assert(i != std::cregex_token_iterator());
        assert(i->str() == "3456");
        i++;
        assert(i == std::cregex_token_iterator());
    }

  return 0;
}