我想用boost::regex
一堆的格式19991231235959
日期的格式更改爲這種格式1999-12-31_23:59:59
這樣的:簡單使用正則表達式提振比賽團體::
YYYYMMDDhhmmss --> YYYY-MM-DD_hh:mm:ss
19991231235959 --> 1999-12-31_23:59:59
我用這個
std::string input = "19991231235959";
boost::regex regex("^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})");
std::string format = "\\1-\\2-\\3_\\4:\\5:\\6";
std::string output = boost::regex_replace(input, regex, format);
哪些工作,但有沒有辦法擺脫重複([0-9]{2})
在regex
建設和保持匹配組?
你真的真的需要這個正則表達式嗎? –
另外,如果你設置了'regex_constants :: escape_in_lists',你可以使用'\\ d'而不是'[0-9]'。 –
也許正則表達式不是最好的解決方案;我想這是一個練習。我首先考慮的是正則表達式的原因是可以從配置中讀取'regex'和'format'字符串。 – Svaberg