C#正則表達(dá)式快速入門
2006/12/28 22:45:35

[介紹]
 
作者將自己在學(xué)習(xí)正則表達(dá)式中的心得和筆記作了個(gè)總結(jié)性文章,希望對(duì)初學(xué)C#正則表達(dá)式的讀者有幫助。
[內(nèi)容]  什么是正則表達(dá)式 涉及的基本的類 正則表達(dá)式基礎(chǔ)知識(shí) 構(gòu)建表達(dá)式基本方法 編寫一個(gè)檢驗(yàn)程序 參考資料


[正文]

    對(duì)于初學(xué)者看到類似“\w+@\w+\.\w{1,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)證用戶輸入信息格式,比如上面的那組“\w{1,}@\w{1,}\.\w{1”,實(shí)際上就是驗(yàn)證郵件地址是否合法的;當(dāng)然正則表達(dá)式不僅僅是用于驗(yàn)證,可以說只要運(yùn)用字符串的地方都可以使用正則表達(dá)式;
涉及的基本的類

    正則表達(dá)式在英文中寫作(Regular Expression),根據(jù)正則表達(dá)式的使用范圍和單詞意思,.NET將其命名空間設(shè)置為System.Text.RegularExpressions;

    在該命名空間內(nèi)包括了8個(gè)基本的類:Capture、CaptureCollection、Group、GroupCollection、Match、MatchCollection、Regex和RegexCompilationInfo如圖1所示;



      圖1 MSDN Library中正則表達(dá)式命名空間   

 









    Capture 用于單個(gè)表達(dá)式捕獲結(jié)果  CaptureCollection 用于一個(gè)序列進(jìn)行字符串捕獲  Group 表示單個(gè)捕獲的結(jié)果  GroupCollection 表示捕獲組的集會(huì)  Match 表示匹配單個(gè)正則表達(dá)式結(jié)果  MatchCollection 表示通過迭代方式應(yīng)用正則表達(dá)式到字符串中  Regex 表示不可變的正則表達(dá)式  RegexCompilationInfo 將編譯正則表達(dá)式需要提供信息   


[注意]

    本文屬于初學(xué)正則表達(dá)式的入門文章,對(duì)于高級(jí)的分組(Group)及其涉及語法等在這里不做介紹;

正則表達(dá)式基礎(chǔ)知識(shí)
  基本語法 

    在正則表達(dá)式中擁有一套自己的語法規(guī)則,常見語法包括;字符匹配、重復(fù)匹配、字符定位、轉(zhuǎn)義匹配和其他高級(jí)語法(字符分組、字符替換和字符決策);

    字符匹配語法:











    字符語法 語法解釋 語法例子  \d 匹配數(shù)字(0~9) ‘\d’匹配8,不匹配12;  \D 匹配非數(shù)字 ‘\D’匹配c,不匹配3;  \w 匹配任意單字符 ‘\w\w’ 匹配A3,不匹配@3;  \W 匹配非單字符 ‘\W’匹配@,不匹配c;  \s 匹配空白字符 ‘\d\s\d’匹配3 d,不匹配abc;  \S 匹配非空字符 ‘\S\S\S’匹配A#4,不匹配3 d;  . 匹配任意字符 ‘....’匹配A$ 5,不匹配換行;  […] 匹配括號(hào)中任意字符 [b-d]匹配b、c、d, 不匹配e;  [^…] 匹配非括號(hào)字符 [^b-z]匹配a,不匹配b-z的字符;   

    重復(fù)匹配語法:








    重復(fù)語法 語法解釋 語法例子  {n} 匹配n次字符 \d{3}匹配\d\d\d,不匹配\d\d或\d\d\d\d  {n,} 匹配n次和n次以上 \w{2}匹配\w\w和\w\w\w以上,不匹配\w  {n,m} 匹配n次上m次下 \s{1,3}匹配\s,\s\s,\s\s\s,不匹配\s\s\s\s  ? 匹配0或1次 5?匹配5或0,不匹配非5和0  + 匹配一次或多次 \S+匹配一個(gè)以上\S,不匹配非一個(gè)以上\S  * 匹配0次以上 \W*匹配0以上\W,不匹配非N*\W   

    字符定位語法:









    重復(fù)語法 語法解釋 語法例子  ^ 定位后面模式開始位置    $ 前面模式位于字符串末端    \A 前面模式開始位置    \z 前面模式結(jié)束位置    \Z 前面模式結(jié)束位置(換行前)    \b 匹配一個(gè)單詞邊界    \B 匹配一個(gè)非單詞邊界     

    轉(zhuǎn)義匹配語法:










 

    轉(zhuǎn)義語法 涉及

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 国产高清中文手机在线观看| 日韩美女中文字幕| 午夜一区二区在线观看| 麻豆精品一区二区三区免费| 国产精品爽黄69天堂a| 人人爽人人爽人人爽人人片av| 贰佰麻豆剧果冻传媒一二三区| 国产精一品亚洲二区在线播放| 99久久无码一区人妻| 岳的奶大又白又胖| 久久久久久亚洲av成人无码国产| 杨贵妃艳史毛片在线播放免费观看| 亚洲欧美日韩精品| 男人把女人桶爽30分钟应用| 又色又爽又黄的视频女女高清| 西西人体444rt高清大胆| 国产手机在线视频| 天堂资源中文在线| 国产麻传媒精品国产AV| chinese国产xxxx实拍| 恋老小说我和老市长| 久99久精品免费视频热77| 日韩午夜视频在线观看| 亚洲av乱码一区二区三区| 欧美日韩一区二区三区四区在线观看 | 国产欧美精品区一区二区三区 | 成人αv在线视频高清| 久久久久人妻一区二区三区vr| 最新视频-88av| 亚洲一区二区三区免费在线观看| 欧美线在线精品观看视频| 人人狠狠综合久久亚洲| 精品一区二区三区AV天堂| 厨房掀起馊子裙子挺进去视频| 色综合合久久天天给综看| 国产午夜精品久久久久免费视| 国产福利免费视频| 国产真实乱对白精彩久久| 2019中文字幕在线| 国产精品视频一区二区三区不卡| 99re免费99re在线视频手机版|