"${문자열}" 패턴을 찾아 "우하하하"로 변환 합니다.



wxString mappedMultiLang(const wxString& s) {


if (s.empty()) return _("");

wxString mapped_str;


wxRegEx regex("\\$\\{[^\\}]*\\}", wxRE_ADVANCED + wxRE_ICASE);

if (!regex.IsValid()) return _("");

wxString str = s;

while (regex.Matches(str)) {

size_t start, length;

if (regex.GetMatch(&start, &length, 0)) {

// get id. exclude ${}

wxString id = regex.GetMatch(str, 0);

id = id.SubString(2, id.size()-2); // ${} 제거


// previous string

wxString pre_str = str.SubString(0, start-1); // ${ 이전 문자열


// message mapping

id = "우하하하";


mapped_str += pre_str + id;

}

str.Remove(0, start + length);

}

return mapped_str += str;

}



사용

// regex

wxString a1 = mappedMultiLang(" ${HI} a ${BMADM} b${} c");

wxString a2 = mappedMultiLang("");

wxString a3 = mappedMultiLang("${}");

wxString a4 = mappedMultiLang("${?}");

wxString a5 = mappedMultiLang("adfadsf adfa ds ");


결과 : 
a1 : " 우하하하 a 우하하하 b우하하하 c"
a2 : ""
a3 : "우하하하"
a4 : "우하하하"
a5 : "adfadsf adfa ds "





'C++' 카테고리의 다른 글

taskbar gage (windows7 이상)  (0) 2012.07.24
wxZip 사용  (0) 2012.07.24
wxRichTextCtrl 사용방법  (0) 2012.07.14
wxColour #FF000000 - 알파 인식여부 확인  (0) 2012.07.11
std::regex  (0) 2012.07.05
atlconv.h code page 관련  (0) 2012.07.04
shorcut 바로가기 아이콘 만들기  (0) 2012.06.30
c++ cookie 읽기  (0) 2012.06.26