正規表示式是一種文字模式,包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為"元字元")。正規表示式使用單個字串來描述、匹配一系列匹配某個句法規則的字串。
標頭檔案:
#include
1、regex_match:整個字串是否匹配
2、regex_search:只返回第乙個匹配結果
3、iterator:返回多個匹配結果,類似於指標,呼叫成員要用"->"
例項:
regex reg1("\\w+day");
string s1 = "saturday";
string s2 = "saturday and sunday";
smatch r1;
smatch r2;
cout << boolalpha << regex_match(s1, r1, reg1) << endl; //true
cout << boolalpha << regex_match(s2, r2, reg1) << endl; //false
cout << "s1匹配結果:" << r1.str() << endl; //saturday
cout << "s2匹配結果:" << r2.str() << endl; //空
cout << endl;
smatch rr1;
smatch rr2;
cout << boolalpha << regex_search(s1, rr1, reg1) << endl; //true
cout << "s1匹配結果:" << rr1.str() << endl; //saturday
cout << boolalpha << regex_search(s2, rr2, reg1) << endl; //true
cout << "s1匹配結果:" << rr2.str() << endl; //saturday
cout << endl;
//使用iterator返回多個匹配結果
//結果要用->
cout << "iterator結果:" << endl;
sregex_iterator it(s2.begin(), s2.end(), reg1);
sregex_iterator end;
for(; it != end; ++it)
cout << "token_iterator結果:" << endl;
sregex_token_iterator tit(s2.begin(), s2.end(), reg1);
sregex_token_iterator tend;
for(; tit != tend; ++tit)
除外,還有:子表示式匹配和多個匹配結果
//子表示式匹配
regex reg2("(\\d):(\\d):(\\d):(\\d)");
string ip = "0:11:222:333";
smatch m;
regex_match(ip, m, reg2);
cout << "輸出:str()" << endl;
cout << m.str() << endl;
cout << m.str(1) << endl;
cout << m.str(2) << endl;
cout << m.str(3) << endl;
cout << m.str(4) << endl;
cout << "輸出:[i]" << endl;
cout << m[0] << endl;
cout << m[1] << endl;
cout << m[2] << endl;
cout << m[3] << endl;
cout << m[4] << endl;
//輸出結果同上
//regex_search(ip, m, str2);
cout << endl;
string ip2 = "0:11:222:333 4:55:66:7";
sregex_iterator ip_it(ip2.begin(), ip2.end(), reg2);
sregex_iterator ip_end;
for(; ip_it != ip_end; ++ip_it)
參考 C 11正規表示式
優勢 使得字串的處理更加簡單 一些相關的操作 驗證 檢查字串是否是想要的合法性 決策 判斷乙個輸入標書哪種字串 解析 從輸入的字串中查詢自己想要的資訊 轉換 搜尋字串,並將字串替換為新的格式化的字串 遍歷 搜尋字串所有出現的地方 符號化 根據一組分隔符將乙個字串分解為多個子字串 一些重要術語 模式 ...
c 11 正規表示式
include include 正規表示式標頭檔案 using namespace std regex search 檢索 regex replace 將檢索到的物件進行替換替換 match 是否匹配 void main cout 正規表示式實現字串的替換 void main 匹配時間 void m...
C 11 正規表示式
0.常用正規表示式 中文字元 u4e00 u9fa5 雙位元組字元 包括漢字在內 x00 xff 空白符 n s r 國內 號碼 d d d 18位身份證號 d d d d d 0 9 x 年 月 日 格式日期 0 9 1 9 0 9 1 9 0 9 0 9 1 9 0 9 1 9 0 9 0 13...