| 所以我尝试了: QRegExp("^[^\\/:*?\"<>|]*$") 这适用于除反斜杠之外的所有-6ren">
gpt4 book ai didi

c++ - 使用 QRegExp 排除反斜杠?

转载 作者:搜寻专家 更新时间:2023-10-30 23:54:01 25 4
gpt4 key购买 nike

我想创建一个正则表达式来排除文件名中无效的字符。在 Windows 上,无效字符是/:*?"<>| 所以我尝试了:

QRegExp("^[^\\/:*?\"<>|]*$")

这适用于除反斜杠之外的所有字符。由于双反斜杠不起作用,我想我会看到如果我使用单个反斜杠会发生什么,但这给了编译器警告 warning: unknown escape sequence: '/' 并且没有修复问题。

如何修改正则表达式,以便在与 QRegExpValidator 一起使用时成功排除反斜杠字符?

顺便说一句,我这样做的原因是因为 QDir::rename() 似乎没有检查无效字符,所以如果输入了无效字符,文件将变得不可访问。限制用户可以输入的字符是避免这种情况的最佳解决方案,还是 QDir 提供了我错过的机制?

最佳答案

QRegExp("^[^\\\\/:*?\"<>|]*$")

或在 c++11 中使用原始字符串:

QRegExp(R"(^[^\\/:*?"<>|]*$)")

关于c++ - 使用 QRegExp 排除反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36891039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com