程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++中正則表達式(regex) 替換(replace) 詳解

C++中正則表達式(regex) 替換(replace) 詳解

編輯:關於C++

正則表達式, 可以替換(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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved