C正則表達(dá)式快速入門_第1頁
C正則表達(dá)式快速入門_第2頁
C正則表達(dá)式快速入門_第3頁
C正則表達(dá)式快速入門_第4頁
C正則表達(dá)式快速入門_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、word.專業(yè)技術(shù)行業(yè)資料 內(nèi)容1. 什么是正則表達(dá)式2. 涉及的基本的類3. 正則表達(dá)式基礎(chǔ)知識4. 構(gòu)建表達(dá)式基本方法5. 編寫一個(gè)檢驗(yàn)程序6. 參考資料正文對于初學(xué)者看到類似“w1,3這樣復(fù)雜沒有規(guī)律的字符,就會(huì)莫名產(chǎn)生一種恐懼感。其實(shí)正則表達(dá)式和字符串(String)的使用同樣非常簡單。下面讓我們逐步地走進(jìn)正則表達(dá)式的世界!什么是正則表達(dá)式正則表達(dá)式是用來檢驗(yàn)和操作字符串的強(qiáng)大工具。簡單的理解正則表達(dá)式可以認(rèn)為是一種特殊的驗(yàn)證字符串。正則表達(dá)式常見運(yùn)用是驗(yàn)證用戶輸入信息格式,比如上面的那組“w1”,實(shí)際上就是驗(yàn)證郵件地址是否合法的;當(dāng)然正則表達(dá)式不僅僅是用于驗(yàn)證,可以說只要運(yùn)用字符串的

2、地方都可以使用正則表達(dá)式;涉及的基本的類正則表達(dá)式在英文中寫作(Regular Expression ),根據(jù)正則表達(dá)式的使用范圍和單詞意思,.NET將其命名空間設(shè)置為 System.Text.RegularExpressions ;在該命名空間內(nèi)包括了 8 個(gè)基本的類:Capture、CaptureCollection、Group、GroupCollection、Match、MatchCollection、Regex 禾口 R egexCompilati onlnfo 女口圖1所示;圖1 MSDN Library 中正則表達(dá)式命名空間Capture用于單個(gè)表達(dá)式捕獲結(jié)果范文范例學(xué)習(xí)參考指導(dǎo)w

3、ord.專業(yè)技術(shù)行業(yè)資料CaptureCollecti on用于一個(gè)序列進(jìn)行字符串捕獲Group表示單個(gè)捕獲的結(jié)果GroupCollectio n表示捕獲組的集會(huì)Match表示匹配單個(gè)正則表達(dá)式結(jié)果MatchCollecti on表示通過迭代方式應(yīng)用正則表達(dá)式到字付串中Regex表示不可變的止則表達(dá)式RegexCompilati onlnfo將編譯正則表達(dá)式需要提供信息注意本文屬于初學(xué)正則表達(dá)式的入門文章,對于高級的分組(Group)及其涉及語法等在這里不做介紹;正則表達(dá)式基礎(chǔ)知識?基本語法在正則表達(dá)式中擁有一套自己的語法規(guī)則,常見語法包括;字符匹配、重復(fù)匹配、字符定位、轉(zhuǎn)義匹配和其他高級語法

4、(字符分組、字符替換和字符決策);字符匹配語法:字符語法語法解釋語法例子d匹配數(shù)字(09)d匹配8,不匹配12;D匹配非數(shù)字D匹配c,不匹配3;w匹配任意單字符w 匹配A3,不匹配3W匹配非單字符W匹配不匹配c;s匹配空白字符d匹配3 d,不匹配abc;S匹配非空字符S匹配A#4,不匹配3 d ;匹配任意字符.匹配A$ 5,不匹配換行;匹配括號中任意字符b-d匹配b、c、d,不匹配e ;F匹配非括號字符Fb-z匹配a,不匹配b-z的字符;重復(fù)匹配語法:語法解釋語法例子重復(fù)語法n匹配n次字符d3匹配 ddd, 不匹配 dd 或ddddn,匹配n次和n次以上w2匹配ww和www以上,不匹配wn ,

5、m匹配n次上m次下s1,3 匹配 s,ss,sss,不匹配 ssss?匹配0或1次5?匹配5或0,不匹配非 5和0+匹配一次或多次S+匹配一個(gè)以上S,不匹配非一個(gè)以上S*匹配0次以上W*匹配0以上W,不匹配非 N*W字符定位語法:重復(fù)語法語法解釋語法例子A定位后面模式開始位置$前面模式位于字符串末端A前面模式開始位置z前面模式結(jié)束位置Z前面模式結(jié)束位置(換行前)1b匹配一個(gè)單詞邊界B匹配一個(gè)非單詞邊界轉(zhuǎn)義匹配語法:轉(zhuǎn)義語法涉及字符(語法解釋)語法例子“” +實(shí)際字符 . * + ? |( ) 人 $例如:匹配字符“ ”n匹配換行r匹配回車t匹配水平制表符v匹配垂直制表符f匹配換頁nnn匹配一個(gè)

6、8進(jìn)制ASCIIxnn匹配一個(gè)16進(jìn)制ASCIIu nnnn匹配4個(gè)16進(jìn)制的Uniodec+大與字母匹配Ctrl-大寫字母例如:cS-匹配Ctrl+S?構(gòu)造正則表達(dá)的方法構(gòu)造正則表達(dá)式需要涉及 Regex類,在Regex類中包括:lsMatch()、Replace。、Split()和Match的類;(1) lsMatch()方法;IsMatch()方法實(shí)際上是一個(gè)返回 Bool值得方法,如果測試字符滿足正則表達(dá)式返回True否則返回False ;例1;判斷是非成都地區(qū)電話號碼合法;分析:成都地區(qū)電話號碼組成028*,前面為固定區(qū)號 028,后面滿足8位數(shù)字;設(shè)計(jì)正則表達(dá)式:028d8(解釋:

7、028區(qū)號固定,后面為 8個(gè)數(shù)字d組成);程序代碼,如圖2所示:范文范例學(xué)習(xí)參考指導(dǎo)word.專業(yè)技術(shù)行業(yè)資料圖2 “例1” IsMatch 方法是用例 Replace。方法;Replace。方法實(shí)際上是一種替換的方法,替換匹配正則表達(dá)式匹配模式; 例2:在發(fā)布帶有公開電子郵件地址的文章時(shí),替換位 at避免產(chǎn)生垃圾郵件;分析:首先需要判斷文章中電子郵箱地址,然后執(zhí)行替換設(shè)計(jì)正則表達(dá)式:判斷電子郵箱表達(dá)式”.”;范文范例學(xué)習(xí)參考指導(dǎo).word.專業(yè)技術(shù)行業(yè)資料 程序代碼:如圖3所示;圖3 例2 Replace方法是用例Split()方法;Spiit()方法實(shí)際上是拆分的方法,根據(jù)匹配正則表達(dá)式進(jìn)

8、行拆分儲(chǔ)存在字符串?dāng)?shù)組中;例3 :從群發(fā)郵件地址中讀取所有郵件地址;范文范例學(xué)習(xí)參考指導(dǎo).word.專業(yè)技術(shù)行業(yè)資料 分析:群發(fā)郵件采用“;”作為分割符,需要通過“;”進(jìn)行拆分程序代碼:如圖4所示;圖4 “例3” Split方法是用例構(gòu)建表達(dá)式基本方法構(gòu)造Regex對象的構(gòu)造函數(shù)包括兩個(gè)重載,一個(gè)是不含參數(shù)的構(gòu)造、另外一個(gè)是含有參數(shù)的構(gòu)造函數(shù);?基本形式 Regex(string pattern);范文范例學(xué)習(xí)參考指導(dǎo).word.專業(yè)技術(shù)行業(yè)資料重載形式 Regex(string pattern,RegexOptions);CultureI nvaria nt(忽補(bǔ)充:RegexOptions

9、屬于枚舉類型,包括IgnoreCase(忽略大小寫)、ReghtToLeft(從右向左)、None (默認(rèn))、略區(qū)域)、Multline(多行模式)和 SingleLine(單行模式);例4,建立一個(gè)合法ISBN驗(yàn)證格式;分析:ISBN 格式為 X-XXXXX-XXX-X;正則表達(dá)式格式:d-d5-d3-d構(gòu)造該正則表達(dá)式函數(shù)Regex ISBNRegex = new Regex( 表達(dá)式,參數(shù)為空)詳細(xì)代碼:如圖 5所示;范文范例學(xué)習(xí)參考指導(dǎo)word.專業(yè)技術(shù)行業(yè)資料圖5 “例4”構(gòu)造驗(yàn)證函數(shù)是用例編寫個(gè)檢驗(yàn)程序lsMatch()方法正則表達(dá)式驗(yàn)證器編寫;Regex_Tools ”;為了方便自己在學(xué)習(xí)正則表達(dá)式和快速檢驗(yàn)自己編寫表達(dá)式語句是否正確,下面提供一個(gè)1. 打開VS.NET,選擇新建項(xiàng)目中的Visual C#項(xiàng)目的Windows應(yīng)用程序,取名為2. 然后編寫如圖6所示的界面圖6正則表達(dá)式IsMatch方法驗(yàn)證器3.3. 然后在該窗體聲明中增加正則表達(dá)式命名空間聲明using System.Text.RegularExpressions;4. 編寫下列代碼

溫馨提示

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

評論

0/150

提交評論