c 正規表示式

2021-09-28 19:53:19 字數 1175 閱讀 8254

正規表示式

是一種描述字串行的方法,就是尋找一定規則的匹配字串行。在標頭檔案regex中

regex:表示有乙個正規表示式的類

regex_match:將乙個字串行與乙個正規表示式匹配

regex_search:尋找第乙個與正規表示式匹配的子串行

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

sregex_iterator:迭代器介面卡,呼叫regex_search來遍歷乙個string中所有匹配的字串

smatch:容器類,儲存在string中搜尋的結果

ssub_match:string中匹配的子表示式的結果

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

pattern = "[[:alpha:]]*" + pattern + "[[:alpha:]]*";//定製查詢模式規則

regex r(pattern); //構建乙個用於查詢模式的regex

smatch resu;//搜尋的結果

string test_str = "receipt freind theif receive";

if (regex_search(test_str, resu, r))//得到第乙個匹配的子串行

使用sregex_iterator

for (sregex_iterator it(file.begin(), file.end(), r), end_it; it != end_it; ++it)

使用子表示式

第乙個是點之前表示檔名的部分 第二個表示副檔名 icase忽略大小寫

regex rz("([[:alnum:]]+)\\.(ccp|cxx|cc)$", regex::icase);

使用regex_replace

string fmt = "$2.$5.$7.";//格式改為ddd.ddd.ddd

string pp = "(\\()?(\\d)(\\))?([-. ])?(\\d)([-. ]?)(\\d)";

regex rr(pp);

string num = "(908) 555-1800";

cout << regex_replace(num, rr, fmt) << endl;

C 正規表示式

c 中的正規表示式 1 c 中的正規表示式 jeffrey e.f.friedl寫了一本關於正規表示式的書 精通正規表示式 作者為了使讀者更好的理解和掌握正規表示式,編造了乙個故事。該書的語言以perl為主。據我所知c 中的正規表示式也是基於perl5。所以它們應該有許多的共同之處。其實,我並不打算...

C 正規表示式

正規表示式 元字元 匹配任何單個字元,匹配括號內的任何乙個字元,改變優先順序,定義提取組,將兩個匹配條件進行邏輯或運算,匹配0至多個它之前的子表示式,和萬用字元 沒關係,匹配前面的子表示式一次或多次,匹配前面的子表示式零次或一次,匹配前面表示式確定的n次,匹配前面表示式至少n次,匹配前面表示式n到m...

C 正規表示式

正規表示式元字元 1 中括號 用來描述匹配規則,乙個中括號只能匹配乙個字元 2 小括號 用來描述匹配的字串,乙個小括號表示匹配一段字串 3 大括號 用來描述匹配的具體數量 4 s 用於匹配單個空格符,包括tab鍵和換行符 5 s 用於匹配除單個空格符之外的所有字元 6 d 用於匹配從0到9的數字 7...