我想创建一个正则表达式以排除文件名中无效的字符。在Windows上,无效字符是/:*?“ |,所以我尝试了:QRegExp("^[^\\/:*?\"<>|]*$")这适用于除反斜杠之外的所有字符。由于双反斜杠不起作用,所以我想如果我使用单个反斜杠,将会看到会发生什么,但是这给了编译器警告警告:未知转义序列:'/',并且没有解决问题。我如何修改正则表达式,以便与QRegExpValidator一起使用时可以成功排除反斜杠字符?顺便说一句,我这样做的原因是因为QDir::rename()似乎没有检查无效字符,因此如果输入无效字符,文件将变得不可访问。限制字符是用户可以输入最佳解决方案以避免这种情况的原因,还是QDir提供了我错过的机制? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 QRegExp("^[^\\\\/:*?\"<>|]*$")或在c++ 11中使用原始字符串:QRegExp(R"(^[^\\/:*?"<>|]*$)") (adsbygoogle = window.adsbygoogle || []).push({}); 10-08 11:25