C 正則表表示式

2021-10-23 03:29:01 字數 2518 閱讀 2291

#include

#include

#include

using

namespace std;

void

regex_match_test()

",// 花括號,匹配前面字元至少 n 次,但是不超過 m 次。

"(ccaatt)"

,//(xyz) 字元組,按照確切的順序匹配字元xyz。

"(c(h|d|f)aatt)|(ccaatt)"

,// | 分支結構,匹配符號之前的字元或後面的字元。

// \ 轉義符,它可以還原元字元原來的含義,允許你匹配保留字元 [ ] ( ) . * + ? ^ $ \ |

"^ccaatt"

,// ^ 匹配行的開始

"ccaatt$"

// $ 匹配行的結束};

for(

int i =

0;i < patterns.

size()

; i++

) regs.

push_back

(regex

(patterns[i]))

;for

(int i =

0;i < regs.

size()

; i++)}

void

regex_search_test()

; regex color_regex

("#[a-f0-9]"

"[a-f0-9]"

"[a-f0-9]");

// 簡單匹配

for(

const

auto

&line : lines)

std::cout <<

'\n'

;// 展示每個匹配中有標記子表示式的內容

smatch color_match;

for(

const

auto

& line : lines)

}// 重複搜尋(參閱 std::regex_iterator )

std::string log

(r"( \

speed: 366 \

mass: 35 \

speed: 378 \

mass: 32 \

speed: 400 \

mass: 30)");

regex r

(r"(speed:\t\d*)");

smatch sm;

while

(regex_search

(log, sm, r)

)// c 風格字串演示

cmatch cm;if(

regex_search

("this is a test"

, cm,

regex

("test"))

) cout <<

"\nfound "

<< cm[0]

<<

" at position "

<< cm.

prefix()

.length()

<< endl;

}void

regex_replace_test()

} for brown fox"

,replace_result;

std::regex double_brace

("(\\\\})");

//regex_replace返回值即為替換後的字串

replace_result =

regex_replace

(text,double_brace,

"*")

; cout << replace_result <<

"\n"

;//構造存有結果的字串,[$&]即為用將匹配成功部分括起來

// $& inserts the matched substring.

cout <<

regex_replace

(text, double_brace,

"[$&]"

)<<

'\n'

;// $i則輸出double_brace中第i個括號匹配到的值

cout <<

regex_replace

(text, double_brace,

"$1"

)<<

'\n'

; cout <<

regex_replace

(text, double_brace,

"[$2]"

)<<

'\n'

; cout <<

regex_replace

(text, double_brace,

"$3"

)<<

'\n';}

int main (

)

公用表表示式

公用表表示式 common table expressions 假設我們有乙個100w條資料的訂單表,需要分頁查詢。declare rownumber asint,pagenumber asint set rownumber 5 set pagenumber 2 with orderedorders...

公用表表示式CTE

公用表表示式cte表面上和派生表非常相似,看起來只是語義上的區別。但和派生表比較起來,cte具有幾個優勢 第一,如果須要在乙個cte中引用另乙個cte,不需要像派生表那樣巢狀,相反,只要簡單地在同乙個with子句中定義多個cte,並用逗號把它們分隔開。每個cte可以引用在它前面定義的所有cte。而外...

公用表表示式 CTE

在編寫t sql 時,往往需要臨時儲存某些結果集。前面我們已經廣泛使用和介紹了兩種臨時儲存結果集的方法 臨時表和表變數。除此之外,還可以使用公用表表示式的方法。公用表表示式 common table expression 是sql server2005版本的引入的乙個特性。cte可以看組是乙個臨時的...