匹配
regex_match ("subject", std::regex("(sub)(.*)") //結果返回true
主要regex_match需要匹配源字符串的每個字符,這點與regex_search不同
查找
返回一個匹配項
const regex pattern("(\\w+day)"); string weekend = "Saturday and Sunday";// the source text smatch result; bool match = regex_search(weekend, result, pattern); if(match){ for(size_t i = 1; i < result.size(); ++i){ cout << result[i] << std::endl; } }
輸出結果是Saturday
匹配所有項
const regex pattern("(\\w+day)"); string weekend = "Saturday and Sunday, but some Fridays also."; const sregex_token_iterator end; for (sregex_token_iterator i(weekend.begin(),weekend.end(), pattern); i != end ; ++i){ cout << *i << " "; }
輸出結果是Saturday Sunday Friday
替換
string text = "This is a element and this a unique ID."; const regex pattern("(\\ba (a|e|i|u|o))+");// regular expression with two capture groups std::string replace = "an $2"; //$2表示匹配模式串的第二個字串,即以a,e,i,o,u開頭的單詞 string newtext = regex_replace(text, pattern, replace); cout << newtext << endl;