C++中正則表達(dá)式的使用方法詳解_第1頁(yè)
C++中正則表達(dá)式的使用方法詳解_第2頁(yè)
C++中正則表達(dá)式的使用方法詳解_第3頁(yè)
C++中正則表達(dá)式的使用方法詳解_第4頁(yè)
C++中正則表達(dá)式的使用方法詳解_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第C++中正則表達(dá)式的使用方法詳解在上面的程序中,首先,我們使用regex_match函數(shù)將字符串softwareTesting與正則表達(dá)式(soft)(.*)匹配。隨后,我們還通過(guò)向regex_match傳遞字符串對(duì)象、范圍等來(lái)演示regex_match的不同變體。

3.2regex_search()

函數(shù)regex_search()用于在字符串中搜索匹配正則表達(dá)式的模式。

考慮下面的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;

我們先指定一個(gè)字符串,然后使用regex對(duì)象指定一個(gè)正則表達(dá)式。這個(gè)字符串和regex連同smatch標(biāo)志類(lèi)型一起被傳遞給regex_search函數(shù)。該函數(shù)在輸入字符串中搜索第一個(gè)出現(xiàn)的模式,并返回匹配的字符串。

3.3regex_replace()

函數(shù)regex_replace()用于用字符串替換與正則表達(dá)式匹配的模式。

讓我們使用一個(gè)c++程序來(lái)演示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;

這里,我們有一個(gè)輸入字符串。我們提供了一個(gè)正則表達(dá)式來(lái)匹配以p開(kāi)頭的字符串。然后我們將匹配的單詞替換為website。接下來(lái),我們將website替換回portal。

4.C++輸入驗(yàn)證

我們已經(jīng)討論了使用regex進(jìn)行模式匹配的主要函數(shù)模板。值得注意的是,regex服務(wù)的主要目的是輸入驗(yàn)證。可以使用regex表達(dá)式驗(yàn)證從標(biāo)準(zhǔn)輸入設(shè)備輸入的輸入。

檢查下面的程序,以演示如何使用regex驗(yàn)證傳入的數(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;}

這個(gè)程序匹配用戶(hù)輸入的輸入,以驗(yàn)證它是否是整數(shù)。上面的輸出顯示,當(dāng)輸入一個(gè)整數(shù)時(shí),它會(huì)給出一個(gè)適當(dāng)?shù)南?,而?dāng)輸入任何其他數(shù)據(jù)時(shí),它會(huì)將該消息作為無(wú)效輸入。

5.總結(jié)

Regex在搜索引擎中用于搜索模式,搜索和替換應(yīng)用程序的對(duì)話框,如字處理器和文本編輯器。Regex也用于UNIX實(shí)用程序,如sed、awk以及程序的詞法分析。

在本教程中,我們已經(jīng)看到了用于匹配、搜索和替換模式的函數(shù)。使用這些函

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論