C 學習筆記 正規表示式

2021-07-22 18:06:00 字數 887 閱讀 4259

c++11新增了正規表示式庫regex,它的用法與python中正規表示式的用法不同,下面是使用c++正規表示式需要掌握的幾個類。

regex 表示乙個正規表示式

regex_match 表示乙個正規表示式的匹配操作,目標字串與正規表示式完全匹配才返回true(python中的macth是從開頭進行匹配)

regex_search 表示乙個正規表示式的搜尋操作,將在目標字串中搜尋所有匹配的結果

smatch 儲存在string物件中搜尋到的匹配結果(python存在group中,group返回匹配的第乙個結果)

sregex_iterator smatch的迭代器?(python的groups返回匹配結果的列表)

regex_replace 使用給定格式替換乙個正規表示式

string pattern("[^c]ei");

parttern = "[[:alpha:]]*"+parttern+"[[:alpha:]]*"; //[[:alpha:]]*表示任意個字母,[^c]ei表示第乙個字母不是c且後兩個字母是ei,這種正規表示式語法是c++11中預設指定的ecma-262語法,與python中的語法不同

regex r(pattern);

smatch results;

string test_str="receipt friend theif receive";

if(regex_search(test_str, results, r))

可以將正規表示式看作某種程式語言編寫的「程式」,它並不是由c++編譯器進行編譯,而是在c++程式執行是被編譯,因此正規表示式的語法錯誤只有在c++程式執行時才能被發現,遇到錯誤將會丟擲regex_error異常。

未完待續……

正規表示式學習筆記

正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...

正規表示式學習筆記

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

正規表示式學習筆記

1.正規表示式是可用於在乙個檔案或字元裡查詢和替代文字的一種標準。它具有兩種標準 基本的正規表示式 bre 擴充套件的正規表示式 ere ere包括bre功能和另外其它的概念。2.表示或運算 3.匹配任何單個字元 4.匹配任何中包含的單個字元,如 張王李 三,匹配張 三 王三,李三 5.將排除 後跟...