我正在研究一种基于Qt的软件,它涉及一些加密技术。使用的唯一三种散列算法指定为
SHA-256
MD5
SHA
但是,我使用的API要求它们采用
的形式sha256
md5
sha
分别。 尽管我可以编写一个混乱的函数以某种方式完成任务,但我知道这可以通过Qt中的正则表达式支持来简化。请帮我提出一个执行此转换任务的正则表达式。
这就是我现在正在做的事情
if (hashType == QString("SHA")) {
return QString("sha");
}
else if (hashType == QString("MD5")) {
return QString("md5");
}
else if (hashType == QString("SHA-256")) {
return QString("sha256");
}
else {
return hashType;
}
答案 0 :(得分:1)
我认为使用正则表达式对此有点过分。你只需要:
return hashType.remove('-').toLower();
答案 1 :(得分:0)
我怀疑你可以用regexp实现更简单的代码,因为替换是通过调用QString::replace()
完成的。对我来说,你可以使用的最干净的方法是QMap(value
如果找不到对象则返回第二个参数在地图中)。
QMap<QString, QString> replacements;
replacements["SHA"] = "sha";
replacements["MD5"] = "md5";
....
return replacements.value(hashType, hashType);