比较qt中的正则表达式
Comparing regex in qt
我有一个正则表达式,我希望它意味着任何扩展名列出的文件:
((\.cpp$)|(\.cxx$)|(\.c$)|(\.hpp$)|(\.h$))
如何比较它在Qt对选定的文件?
您实际的RegEx本身没有双反斜杠(只是当您将其放入字符串字面值时)。如果您希望使用它来匹配完整的文件名,则需要某种通配符。这里有一个语义问题,即您是否希望一个名为"。cpp"的文件匹配。区分大小写呢?
我现在假设您希望在开头至少有一个其他字符,并使用.+
:
。+ ($)( . cpp | ( . cxx美元)| ( c $) | ( . hpp $) | ( . h)美元)
所以这应该可以工作:
QRegExp rx (".+((\.cpp$)|(\.cxx$)|(\.c$)|(\.hpp$)|(\.h$))");
bool isMatch = rx.exactMatch(filename);
但是,随着整个c++编译器的表达能力随你差遣,使用正则表达式可能有点令人窒息。如果您这样写代码,您可能会更容易调整代码:
bool isMatch = false;
QStringList fileExtensionList;
fileExtensionList << "CPP" << "CXX" << "C" << "HPP" << "H";
QStringList splitFilenameList = filename.split(".");
if(splitFilenameList.size() > 1) {
QString fileExtension = splitFilenameList[splitFilenameList.size() - 1];
isMatch = fileExtensionList.contains(fileExtension.toUpper()));
}
相关文章:
- Qt - 在没有正则表达式的情况下,将 QString 拆分为几种类型的空格
- 如何在 QT 框架工作C++中使用变量作为正则表达式模式
- 带有Qt的正则表达式捕获一些文本
- 正则表达式传递正则表达式测试器,但在 qt 中失败
- Qt 中的不匹配数字正则表达式
- QT和正则表达式
- 在Qt Creator中使用正则表达式在多个文件中查找和替换
- Qt中的正则表达式
- Boost::qt Creator中的正则表达式
- 使用 c++ 或 Qt 将 SQL LIKE 表达式转换为正则表达式
- Qt验证器正则表达式
- 带有 Qt 的正则表达式 - indexIn(const QString &) 无法按预期工作
- Qt-检查正则表达式宽度
- 根据QT(C++)中SQLite数据库中的正则表达式检索记录
- 比较qt中的正则表达式
- 无效的正则表达式在Qt但在正则表达式教练这个相同的正则表达式是有效的
- 删除字符串贪婪正则表达式在QT
- Qt正则表达式不匹配
- 正则表达式qt中的条件
- 如何在QT c++中使用正则表达式从字符串中获得子字符串值