#include <iostream>
#include <regex>
// 使用正则表达式判断文件名是否有效(不含非法字符)
inline bool IsValidFileName(const std::string& strFileName)
{
// Windows下文件名中不能包含\/:*?"<>|这些字符
std::regex regExpress("[\\/:*?\"<>|]");
bool bValid = !std::regex_search(strFileName, regExpress);
return bValid;
}
int main(int argc, char** argv)
{
// 文件名
std::string strFileName = "";
std::cout << "input filename" << std::endl;
std::cin >> strFileName;
getchar();
bool bRet = IsValidFileName(strFileName);
puts(bRet == true ? "valid" : "invalid");
getchar();
return 0;
}
Windows系统下C++使用正则表达式判断文件名有效性
于 2020-06-20 16:28:21 首次发布