




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第C++中正則表達式的使用方法詳解在上面的程序中,首先,我們使用regex_match函數(shù)將字符串softwareTesting與正則表達式(soft)(.*)匹配。隨后,我們還通過向regex_match傳遞字符串對象、范圍等來演示regex_match的不同變體。
3.2regex_search()
函數(shù)regex_search()用于在字符串中搜索匹配正則表達式的模式。
考慮下面的c++程序,它顯示了regex_search()的用法。
#includeiostream
#includeregex
#includestring.h
usingnamespacestd;
intmain()
//stringtobesearched
stringmystr="Shesells_seashellsintheseashore";
//regexexpressionforpatterntobesearched
regexregexp("s[a-z_]+");
//flagtypefordeterminingthematchingbehavior(inthiscaseonstringobjects)
smatchm;
//regex_searchthatsearchespatternregexpinthestringmystr
regex_search(mystr,m,regexp);
cout"Stringthatmatchesthepattern:"endl;
for(autox:m)
coutx"";
return0;
我們先指定一個字符串,然后使用regex對象指定一個正則表達式。這個字符串和regex連同smatch標(biāo)志類型一起被傳遞給regex_search函數(shù)。該函數(shù)在輸入字符串中搜索第一個出現(xiàn)的模式,并返回匹配的字符串。
3.3regex_replace()
函數(shù)regex_replace()用于用字符串替換與正則表達式匹配的模式。
讓我們使用一個c++程序來演示regex_replace()函數(shù)。
#includeiostream
#includestring
#includeregex
#includeiterator
usingnamespacestd;
intmain()
stringmystr="ThisissoftwaretestingHelpportal\n";
cout"Inputstring:"mystrendl;
//regextomatchstringbeginningwith'p'
regexregexp("p[a-zA-z]+");
cout"Replacetheword'portal'withword'website':";
//regex_replace()forreplacingthematchwiththeword'website'
coutregex_replace(mystr,regexp,"website");
stringresult;
cout"Replacetheword'website'backto'portal':";
//regex_replace()forreplacingthematchbackwith'portal'
regex_replace(back_inserter(result),mystr.begin(),mystr.end(),
regexp,"portal");
coutresult;
return0;
這里,我們有一個輸入字符串。我們提供了一個正則表達式來匹配以p開頭的字符串。然后我們將匹配的單詞替換為website。接下來,我們將website替換回portal。
4.C++輸入驗證
我們已經(jīng)討論了使用regex進行模式匹配的主要函數(shù)模板。值得注意的是,regex服務(wù)的主要目的是輸入驗證??梢允褂胷egex表達式驗證從標(biāo)準(zhǔn)輸入設(shè)備輸入的輸入。
檢查下面的程序,以演示如何使用regex驗證傳入的數(shù)據(jù)。
#includeiostream
#includeregex
#includestring
usingnamespacestd;
intmain()
stringinput;
regexinteger_expr("(\\+|-)[[:digit:]]+");
//Aslongastheinputiscorrectaskforanothernumber
while(true)
cout"Entertheinput:";
cininput;
if(!cin)break;
//Exitwhentheuserinputsq
if(input=="q")
break;
if(regex_match(input,integer_expr))
cout"Inputisaninteger"endl;
else
{cout"Invalidinput:Notaninteger"endl;}
這個程序匹配用戶輸入的輸入,以驗證它是否是整數(shù)。上面的輸出顯示,當(dāng)輸入一個整數(shù)時,它會給出一個適當(dāng)?shù)南?,而?dāng)輸入任何其他數(shù)據(jù)時,它會將該消息作為無效輸入。
5.總結(jié)
Regex在搜索引擎中用于搜索模式,搜索和替換應(yīng)用程序的對話框,如字處理器和文本編輯器。Regex也用于UNIX實用程序,如sed、awk以及程序的詞法分析。
在本教程中,我們已經(jīng)看到了用于匹配、搜索和替換模式的函數(shù)。使用這些函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 女團趣味測試題及答案
- 文明就餐面試題及答案
- 慢性膽管癌的臨床觀察
- 物業(yè)部長面試題及答案
- 壓瘡護理試題及答案
- java中poi面試題及答案
- 保安服務(wù)禮儀知識培訓(xùn)課件
- 保安培訓(xùn)知識100問課件
- 煙草任務(wù)提成方案(3篇)
- 橋梁樁基返工方案(3篇)
- 2024年河北省孟村回族自治縣事業(yè)單位公開招聘工作人員考試題含答案
- 額葉膠質(zhì)瘤護理查房
- 農(nóng)行招聘薪酬管理辦法
- 2025至2030中國膜行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國物流園區(qū)行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2026年高考生物一輪復(fù)習(xí):必背高頻考點講義(全)
- 2025年成人高考語文試題及答案
- 移動護理信息系統(tǒng)應(yīng)用
- 影視劇公司管理制度
- 村級絡(luò)監(jiān)控安裝方案(3篇)
- 潛水員入場安全教育試卷(含答案)
評論
0/150
提交評論