C 正規表示式

2021-10-21 11:47:05 字數 1485 閱讀 5581

正規表示式regex(regular expression)是一種強大的描述字串行的工具。在許多語言中都存在著正規表示式,c++11中也將正規表示式納入了新標準的一部分,使用時需要include標頭檔案 。

python中有re.match / re.search / re.sub  / re.compile /  re.finditer

這些功能;

c++的

regex

有std::regex_match / std::regex_search / std::regex_replace

這三個function

可選擇,與

python

的re.match / re.search / re.sub

一一對應。

match_results

有點類似於

python re.match

的返回值中的

group

;不同的是,

match_results

需要通過

[index]

下標訪問容器內的元素,

python

中的re.match.group

通過(index)

來訪問。

對於正規表示式的格式,

c++同

python

一致,不過需要注意的是,像

\d \s

等在c++

中需要進行轉義,也就是需要寫成 」\\d」   」\\s」

官方例子就是乙個不錯的參考

正規表示式的格式可以直接參考

python的參考

// g++ -std=c++11 -g ***.cpp -o ***

#include #include using namespace std;

int main(int argc, char* ar**)

)\\s*";

std::string input_cmd = "read register_0x3f";

std::regex expression(pattern);

std::smatch result; // same as std::match_resultsresult;

bool flag = std::regex_match (input_cmd, result, expression);

if(flag)

}else

return 0;

}// ---------- case output ----------

// match :

// result[0] = read register_0x3f

// result[1] = read

// result[2] = 3f

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...