Regex, 可以替換(replace)匹配的字串, 使用regex_replace()函數, 需要指定替換的格式;
也可以提供參數, 進行特定的輸出, 替換格式的命名空間: "boost::regex_constants::"
編程環境: gcc 4.8.1 + eclipse cdt + c++11 + boost
代碼:
#include <iostream> #include <string> #include <boost/regex.hpp> using namespace std; using namespace boost; int main() { //問號(?)表示之前的可以選擇 std::string phone = "(\\()?(\\d{3})(\\))?([-. ])?(\\d{3})([-. ]?)(\\d{4})"; boost::regex r(phone); //代替 std::string fmt("$2.$5.$7"); std::string number("(908)555-1800"); std::cout << regex_replace(number, r, fmt) << std::endl; std::string file("Caroline (201)555-2368 862-55-0123"); std::cout << boost::regex_replace(file, r, fmt) << std::endl; std::cout << boost::regex_replace(file, r, fmt, boost::regex_constants::format_no_copy) << std::endl; }
輸出:
908.555.1800 Caroline 201.555.2368 862-55-0123 201.555.2368
作者:csdn部落格 Spike_King
更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/cplus/