#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可以看組是乙個臨時的...