#include<regex>
#include<iostream>
using namespace std;
std::string getOsName()
{
#ifdef _WIN32
return "Windows 32-bit";
#elif _WIN64
return "Windows 64-bit";
#elif __unix || __unix__
return "Unix";
#elif __APPLE__ || __MACH__
return "Mac OSX";
#elif __linux__
return "Linux";
#elif __FreeBSD__
return "FreeBSD";
#else
return "Other";
#endif
}
int main()
{
cout<< getOsName() << endl;
std::string argv_1 = "s/one/two/three/four/";
bool rename_is_correct = (std::regex_match( argv_1, std::basic_regex<char>
( "s?([/|@#])(?:(?!\\1).)+\\1(?:(?!\\1).)*\\1(?:(?:gi?|ig)?(?:\\1-?[1-9]\\d?)?|i)?" ) ));
if (rename_is_correct) {
cout<< "found" << endl;
} else {
cout<< "not found" << endl;
}
return 0;
}
I2luY2x1ZGU8cmVnZXg+CiNpbmNsdWRlPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0ZDo6c3RyaW5nIGdldE9zTmFtZSgpCnsKICAgICNpZmRlZiBfV0lOMzIKICAgIHJldHVybiAiV2luZG93cyAzMi1iaXQiOwogICAgI2VsaWYgX1dJTjY0CiAgICByZXR1cm4gIldpbmRvd3MgNjQtYml0IjsKICAgICNlbGlmIF9fdW5peCB8fCBfX3VuaXhfXwogICAgcmV0dXJuICJVbml4IjsKICAgICNlbGlmIF9fQVBQTEVfXyB8fCBfX01BQ0hfXwogICAgcmV0dXJuICJNYWMgT1NYIjsKICAgICNlbGlmIF9fbGludXhfXwogICAgcmV0dXJuICJMaW51eCI7CiAgICAjZWxpZiBfX0ZyZWVCU0RfXwogICAgcmV0dXJuICJGcmVlQlNEIjsKICAgICNlbHNlCiAgICByZXR1cm4gIk90aGVyIjsKICAgICNlbmRpZgp9ICAgICAgCgppbnQgbWFpbigpCnsKCWNvdXQ8PCBnZXRPc05hbWUoKSA8PCBlbmRsOwoJc3RkOjpzdHJpbmcgYXJndl8xID0gInMvb25lL3R3by90aHJlZS9mb3VyLyI7Cglib29sIHJlbmFtZV9pc19jb3JyZWN0ID0gKHN0ZDo6cmVnZXhfbWF0Y2goIGFyZ3ZfMSwgc3RkOjpiYXNpY19yZWdleDxjaGFyPgoJICAoICJzPyhbL3xAI10pKD86KD8hXFwxKS4pK1xcMSg/Oig/IVxcMSkuKSpcXDEoPzooPzpnaT98aWcpPyg/OlxcMS0/WzEtOV1cXGQ/KT98aSk/IiApICkpOwoJIGlmIChyZW5hbWVfaXNfY29ycmVjdCkgewogICAgICAgICBjb3V0PDwgImZvdW5kIiA8PCBlbmRsOwoJfSBlbHNlIHsKCQljb3V0PDwgIm5vdCBmb3VuZCIgPDwgZW5kbDsKCX0KICAgIHJldHVybiAwOwp9