{ std::regex pattern("(ab)cd(ef)"); // Find double word. std::string replacement = "le premier groupe est $1 et le second groupe est $2"; std::string target = "abcdef"; std::string output_str = regex_replace(target, pattern, replacement); std::cout << output_str << std::endl; } { std::regex pattern(R"((\d{2})[-/](\d{2})[-/](\d{4}))"); std::smatch match; std::regex_search(std::string("12-03-2014"), match, pattern); for (size_t i = 0; i < match.size(); ++i) { std::cout << i << ": " << match[i].str() << '\n'; } } std::cout << "Traduction" << std::endl; { std::regex pattern("([a-zA-Z]+) \\1"); std::string replacement = "$1"; std::string target = "The cat cat bites the dog dog."; std::string output_str = regex_replace(target, pattern, replacement); std::cout << output_str << std::endl; } std::cout << tr("bla bla $1 bla bla", 123) << std::endl; std::cout << tr("bli bli bli bli $1", 123) << std::endl; std::cout << std::endl; std::cout << "Groupe" << std::endl; match("", R"((ab)*)"); match("a", R"((ab)*)"); match("b", R"((ab)*)"); match("ab", R"((ab)*)"); match("abc", R"((ab)*)"); match("ababab", R"((ab)*)"); std::cout << std::endl; match("cat", R"(c[a-z]*t)"); std::cout << std::endl; std::cout << "Exemples de regex" << std::endl; std::cout << "Date" << std::endl; match("12-03-2014", R"(\d{2}[-/]\d{2}[-/]\d{4})"); std::cout << "Time" << std::endl; match("15:17", R"(\d{2}:\d{2})"); std::cout << std::endl; // vérifier qu'un identifiant C++ est valide // [a-zA-Z_][a-zA-Z_0-9]* // fichier windows //[a-zA-Z_][a-zA-Z_0-9]*\.[a-zA-Z0-9]+ std::string regex_str = "[a-z_][a-z_0-9]*\\.[a-z0-9]+"; std::regex reg1(regex_str, std::regex_constants::icase); std::string str = "File names are readme.txt and my.cmd."; std::sregex_iterator it(str.begin(), str.end(), reg1); std::sregex_iterator it_end; while(it != it_end) { std::cout << it->str() << std::endl; ++it; } }