2012-07-02 6 views
0

일부 암호화와 관련된 Qt 기반 소프트웨어로 작업하고 있습니다. 사용되는 세 개의 해싱 알고리즘은 내가 사용하고있는 API는 각각정규 표현식 및 Qt를 사용한 대/소문자 변환에 관해

sha256 
md5 
sha 

의 형태로 할 것을 요구, 그러나

SHA-256 
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; 
    } 

답변

1

것 뭐하는 거지입니다. 당신은 필요

return hashType.remove('-').toLower(); 
0

난 당신이 정규 표현식에 간단한 코드를 달성 할 수 의심, 교체가 사용할 수있는 깨끗한 방법은 QMap (value 반환 두 번째 인수 인 나를 위해 QString::replace()를 호출하여 수행되기 때문에 개체가 발견되지 않는 경우 지도에서).

QMap<QString, QString> replacements; 
replacements["SHA"] = "sha"; 
replacements["MD5"] = "md5"; 
.... 

return replacements.value(hashType, hashType);