婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > C#中的正則表達(dá)式 學(xué)習(xí)資料

C#中的正則表達(dá)式 學(xué)習(xí)資料

熱門標(biāo)簽:福州工作銷售電話機(jī)器人 高德地圖標(biāo)注短信簽約 電銷機(jī)器人公司簡(jiǎn)介 百音電話機(jī)器人 RO地圖標(biāo)注app 錫林郭勒盟地圖標(biāo)注位置 知名的電話機(jī)器人 自制電銷機(jī)器人 湖南企業(yè)智能外呼系統(tǒng)供應(yīng)商
C#中的正則表達(dá)式 

Jeffrey E.F. Friedl寫了一本關(guān)于正則表達(dá)式的書《精通正則表達(dá)式》。作者為了使讀者更好的理解和掌握正則表達(dá)式,編造了一個(gè)故事。該書的語(yǔ)言以perl為主。據(jù)我所知C#中的正則表達(dá)式也是基于perl5。所以它們應(yīng)該有許多的共同之處。 http://ike.126.com
其實(shí),我并不打算原封不動(dòng)的對(duì)該書的內(nèi)容進(jìn)行翻譯,一則這本書內(nèi)容太多了,我根本就不勝任翻譯這項(xiàng)工作;二則如果我真的把這本書翻譯過(guò)來(lái),同時(shí)把里面的代碼換成C#,在沒(méi)有征得原作者的情況下,可能有侵權(quán)的嫌疑了。所以,權(quán)當(dāng)作讀書筆記好了。 

略過(guò)冗長(zhǎng)的前言,我們可以直接進(jìn)入第一章: 

介紹正則表達(dá)式 

作者說(shuō)這一章是為正則表達(dá)式的絕對(duì)菜鳥而準(zhǔn)備的,目的是為以后的章節(jié)打下堅(jiān)實(shí)的基礎(chǔ)。那么如果你是不是菜鳥,你可以忽略這一章。 

故事場(chǎng)景: 
你的檔案部的頭兒想要一個(gè)工具用來(lái)檢查重復(fù)的單詞(如:this this),一個(gè)在大量編輯文檔的時(shí)候通常會(huì)遇到的問(wèn)題。你的工作就是創(chuàng)建一個(gè)解決方案: 
接受任何數(shù)量要檢查的文件,報(bào)告每個(gè)文件中帶有重復(fù)單詞的那些行,突出顯示這些重復(fù)的單詞,同時(shí)確保原文件名稱和這些行出現(xiàn)在報(bào)表中。 
跨行檢查,找到一行的最后一個(gè)單詞和下一行開頭第一個(gè)單詞出現(xiàn)重復(fù)的情況。 
找出重復(fù)的單詞,不管他們是否大小寫不同(如:The the),以及允許在這些重復(fù)單詞之間含有不同數(shù)量的空白字符(空格、制表符、新行等) 
找出重復(fù)的單詞,甚至這些單詞被Html標(biāo)簽隔開。(如:…it is B>very/B> very important.) 

要解決上述的實(shí)際問(wèn)題,我們首先要做的就是寫出正則表達(dá)式,找到我們想要的文本,忽略我們不需要的文本,然后使用我們的C#代碼對(duì)獲取的文本進(jìn)行處理。 

在使用正則表達(dá)式之前,你也許多少已經(jīng)知道什么是正則表達(dá)式。甚至你不知道,你幾乎可以肯定已經(jīng)熟悉它的基本概念了。 
你知道report.txt是一個(gè)具體的文件名稱,但是如果你有任何Unix或者DOS/Windows的經(jīng)驗(yàn),你也知道“*.txt”可以用來(lái)選擇多個(gè)文件。這種形式的文件名,有一些字符有著特殊的含義。星號(hào)意味著匹配任何東西,問(wèn)號(hào)意味著匹配一個(gè)字符。如:“*.txt”表示任何文件名以.txt結(jié)尾的文件。 
文件名稱得模式匹配,使用了有限的匹配符。還有當(dāng)前網(wǎng)絡(luò)上的搜索引擎也允許使用某些指定的匹配符來(lái)進(jìn)行內(nèi)容搜索。正則表達(dá)式采用豐富的匹配字符,可以處理各種復(fù)雜的問(wèn)題。 

首先我們介紹兩個(gè)位置匹配符: 
^ : 表示一行文字的開始位置 
$ : 表示一行文字的結(jié)束位置 

如:表達(dá)式:"^Cat", 匹配的單詞Cat出現(xiàn)在行的開始處,注意^是一個(gè)位置字符,不是要匹配字符的本身。 
同樣,表達(dá)式:"Cat$" 匹配的單詞Cat出現(xiàn)來(lái)一行的結(jié)尾處。 

接下來(lái),我們介紹表達(dá)式中的方括號(hào)"[]", 它表示匹配括號(hào)中字符中的一個(gè)。如: 
表達(dá)式:"[0123456789]"將匹配數(shù)字0到9的任何一個(gè)。 
例如:我們要查找文本中,所有包含gray或者grey,那么表達(dá)式可以這么寫:"gr[ea]y" 
[ea]表示匹配ea中的一個(gè),而不是整個(gè)ea。 

如果我們要匹配html中的H1>H2>H3>H4>H5>H6>的標(biāo)簽,我們可以寫表達(dá)式: 
"H[123456]>",但是如果我們要匹配所有字符中的一個(gè)呢?哈,問(wèn)題就來(lái)了,在方括號(hào)中寫出所有的字符?很幸運(yùn),我們不必這么做,我們引進(jìn)范圍符號(hào)"-"; 
使用范圍符號(hào),我們只需要給出一個(gè)范圍的邊界字符即可,上面的Html例子,我們可以寫成:"H[1-6]>" 
而表達(dá)式:"[0-9a-zA-Z]"的意思現(xiàn)在清楚了吧?它匹配數(shù)字字符,小寫26個(gè)字母和大寫26個(gè)字母中的一個(gè)。 

出現(xiàn)在[]中的"^"符號(hào) 
如果你看到表達(dá)式如:"[^0-9]",此時(shí),"^"不再是前面說(shuō)的位置符號(hào),這里它是否定符號(hào),表示排除的意思,上面的表達(dá)式,表示不包含數(shù)字0到9的字符。 

思考1:表達(dá)式"q[^u]"的意思。假如有下列的單詞,那些將被匹配? 
Iraqi 
Iraqian 
miqra 
qasida 
qintar 
qoph 
zaqqum 


除了范圍字符的表示之外,還有一個(gè)是點(diǎn)字符".",點(diǎn)字符出現(xiàn)在表達(dá)式中,表示匹配任何字符。 
如表達(dá)式:"07.04.76"將匹配: 
形如:07/04/76, 07-04-76,07.04.76。 

如果我們需要在某些字符中可選擇,我們可以采用選項(xiàng)字符"|": 
選項(xiàng)字符有“或"的意思,比如表達(dá)式:"[Bob|Robert]"則表示Bob或者Robert將被匹配。 
現(xiàn)在看我們前面提到的表達(dá)式:"gr[ea]y" ,利用選項(xiàng)字符我們可以寫作"grey|gray",它們是相同的。 
圓括號(hào)的使用:圓括號(hào)在表達(dá)式中也是被作為元字符使用,如前面的表達(dá)式,我們可以寫成:"gr(e|a)y",這里的圓括號(hào)是必須的,如果沒(méi)有圓括號(hào),那么表達(dá)式"gre|ay"將匹配gre或者ay,這不是我們想要的結(jié)果。如果你還不是很清楚,讓我們看一下下面的例子: 
在電子郵件中查找所有以From:或者Subject:或者Date:開頭的行,我們比較下面的兩個(gè)表達(dá)式: 
表達(dá)式1:"^From|Subject|Data: " 
表達(dá)式2:"^(From|Subject|Data): " 
哪一個(gè)是我們想要的? 
很明顯,表達(dá)式1的結(jié)果不是我們想要的結(jié)果,它匹配的將是:From或者Subjec或者Data: ,表達(dá)式2使用圓括符,就能滿足我們的需要。 

單詞邊界 
我們已經(jīng)可以匹配出現(xiàn)在行首和行尾的字符,那么如果我們想定位的不僅僅是行首或者行尾呢?我們需要引入單詞邊界符號(hào),單詞邊界符號(hào)是:"\b",斜杠不可省略,否則變成匹配字母b。使用單詞邊界符號(hào),我們可以定位匹配的位置必須出現(xiàn)在一個(gè)單詞的開始或者結(jié)尾部分,而不是在單詞的中間。例如:"\bis\b"表達(dá)式在字符串"This is a cat."中將匹配單詞"is"而不會(huì)匹配單詞"This"中的"is"。 

字符串邊界符號(hào) 
除了上述的位置符號(hào),如果我們要匹配的是整個(gè)字符串(含多個(gè)單詞)那么我們可以使用下面的兩個(gè)符號(hào): 
\A :表示字符串的開始處; 
\z :表示字符串的結(jié)束處。 
表達(dá)式:"\AThis is a cat\z"將匹配這個(gè)字符串"This is a cat"。 
使用邊界定位符號(hào),這里要提到一個(gè)重要的概念,那就是單詞字符,單詞字符表示可以構(gòu)成單詞的字符,它們是[a-zA-Z0-9]中的任意一個(gè)字符。所以上面的表達(dá)式也會(huì)在句子"This is a cat."得到匹配。匹配的結(jié)果不包含句號(hào)。 


重復(fù)數(shù)量符號(hào) 
讓我們看表達(dá)式:"Colou?r", 這個(gè)表達(dá)式中出現(xiàn)了我們還沒(méi)有見過(guò)的問(wèn)號(hào),(這個(gè)問(wèn)號(hào)和文件名稱匹配的問(wèn)號(hào)意義不同),它表示符號(hào)前面的一個(gè)字符可以被重復(fù)的次數(shù),"?"表示0次或者1次,前面的表達(dá)式中問(wèn)號(hào)表示u可以出現(xiàn)0或1次,所以它將匹配"Color"或者"Colour"。 
下面是其他的重復(fù)數(shù)量符號(hào): 
+ :表示1次或者多次 
* :表示0次或者多次 
例如我們要表示一或多個(gè)空格,我們可以寫表達(dá)式:" +"; 

如果要表示具體次數(shù)呢?我們引入花括符{}。 
{n} : n是具體的數(shù)字,表示重復(fù)n次。 
{n,m}: 表示最少那次,最多m次。 

這些符號(hào)都限定了符號(hào)前面一個(gè)字符的匹配次數(shù)。但是如果你想重復(fù)多個(gè)字符,比如一個(gè)單詞,那么怎么辦?我們?cè)俅问褂脠A括號(hào),前面我們把圓括號(hào)作為選項(xiàng)的范圍符號(hào),這里是圓括的另外一種使用方法,它被表示為一個(gè)組,例如表達(dá)式:“(this)"這里的this就是一個(gè)組,那么問(wèn)題就好辦了,重復(fù)數(shù)量符號(hào)可以用來(lái)表示它前面一個(gè)組的重復(fù)次數(shù)。 

現(xiàn)在回到查找重復(fù)單詞的問(wèn)題,假如我們要找到“the the”,根據(jù)我們迄今為止學(xué)到的知識(shí),我們可以寫出表達(dá)式: 
"\bthe +the\b" 
表達(dá)式的意思是匹配兩個(gè)the中間有一個(gè)或多個(gè)空格隔開。 
同樣,我們還可以寫成: 
"\b(the +){2}" 

但是如果要找全部可能的重復(fù)單詞呢?我們目前的知識(shí)還不足以解決這個(gè)問(wèn)題,下面我們引進(jìn)反向引用的概念,我們已經(jīng)看到圓括號(hào)可以作為組的邊界,一個(gè)表達(dá)式中可以有多個(gè)被圓括號(hào)限定的組,根據(jù)它們出現(xiàn)的次序,這些組缺省的被分配了一個(gè)組號(hào),第一個(gè)出現(xiàn)的組號(hào)為1號(hào),依次類推。那么反向引用就是可以在之后的表達(dá)式的位置上是使用"\n"來(lái)引用這個(gè)組,這里n是被引用的組號(hào)。反向引用就像是程序中的變量一樣,下面我們看具體的例子: 
前面的單詞重復(fù)表達(dá)式,現(xiàn)在我們采用反向引用可以寫做: 
"\b(the) +\1\b" 
現(xiàn)在,如果我們要匹配所有的重復(fù)單詞,我們就可以改寫表達(dá)式為: 
"\b([a-zA-Z]+) +\1\b" 

最后一個(gè)問(wèn)題是,如果我們要匹配的字符是正則表達(dá)式中的符號(hào),怎么辦?對(duì),使用轉(zhuǎn)義符號(hào)"\&;, 例如如果你要匹配一個(gè)小數(shù)點(diǎn),那么你可以:"\.",還要注意的是如果在程序中使用表達(dá)式那么"\&;也要按照字符串的規(guī)定變成"\\"或者在表達(dá)式前面加@。 

本章僅僅是提供給菜鳥一個(gè)關(guān)于正則表達(dá)式的基礎(chǔ)知識(shí),它只是其中的部分,我們還有許多東西要學(xué)習(xí),這將在后面的章節(jié)中一一介紹。其實(shí),正則表達(dá)式的學(xué)習(xí)并不難,你需要的是耐心和實(shí)踐,如果你想精通它的話。或許有人說(shuō):“我不想知道汽車的細(xì)節(jié),我只想學(xué)會(huì)怎么開車。”如果你也是這樣想的,那么,你永遠(yuǎn)也不知道怎么使用正則表達(dá)式來(lái)解決你的問(wèn)題,進(jìn)而,你也永遠(yuǎn)不會(huì)懂得正則表達(dá)式的真正的強(qiáng)大。
您可能感興趣的文章:
  • 使用C# Winform應(yīng)用程序獲取網(wǎng)頁(yè)源文件的解決方法
  • C#基于正則表達(dá)式實(shí)現(xiàn)獲取網(wǎng)頁(yè)中所有信息的網(wǎng)頁(yè)抓取類實(shí)例
  • 使用C#正則表達(dá)式獲取必應(yīng)每日?qǐng)D片地址
  • C#正則表達(dá)式獲取下拉菜單(select)的相關(guān)屬性值
  • C#使用正則表達(dá)式抓取網(wǎng)站信息示例
  • C#通過(guò)正則表達(dá)式實(shí)現(xiàn)提取網(wǎng)頁(yè)中的圖片
  • c# 正則表達(dá)式對(duì)網(wǎng)頁(yè)進(jìn)行有效內(nèi)容抽取
  • 常用正則 常用的C#正則表達(dá)式
  • C#的正則表達(dá)式Regex類使用簡(jiǎn)明教程
  • C# 正則表達(dá)式經(jīng)典分類整理集合手冊(cè)
  • WinForm使用正則表達(dá)式提取內(nèi)容的方法示例

標(biāo)簽:昆明 玉林 怒江 秦皇島 西寧 吉林 茂名 河北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《C#中的正則表達(dá)式 學(xué)習(xí)資料》,本文關(guān)鍵詞  中的,正則,表達(dá)式,學(xué)習(xí)資料,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《C#中的正則表達(dá)式 學(xué)習(xí)資料》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于C#中的正則表達(dá)式 學(xué)習(xí)資料的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲一区二区三区在线看| 国产丝袜在线精品| 日韩一区二区免费电影| 国产成人啪免费观看软件| 丝袜亚洲另类欧美| 亚洲成a人片在线不卡一二三区| 国产精品中文有码| 亚洲v精品v日韩v欧美v专区| 亚洲品质自拍视频| 国产精品久久久久影院| 久久综合色8888| 欧美tk丨vk视频| 日韩欧美国产不卡| 亚洲精品一区二区三区精华液| 欧美少妇bbb| 91在线丨porny丨国产| 成人一道本在线| 91亚洲大成网污www| 欧美性受xxxx| 精品欧美久久久| 国产欧美在线观看一区| 久久久亚洲综合| 亚洲视频一区二区在线| 五月天网站亚洲| 亚洲蜜臀av乱码久久精品 | 欧美日韩成人综合| 精品国产伦一区二区三区免费| 欧美国产成人在线| 三级成人在线视频| 国产精品中文字幕一区二区三区| 99久久精品久久久久久清纯| 制服.丝袜.亚洲.中文.综合| 中文字幕在线一区二区三区| 亚洲图片你懂的| 激情文学综合丁香| 97久久精品人人做人人爽| 欧美午夜影院一区| 欧美激情一区不卡| 久久www免费人成看片高清| 欧美做爰猛烈大尺度电影无法无天| 精品捆绑美女sm三区| 亚洲成a人v欧美综合天堂| 波多野结衣一区二区三区| 91精品国产色综合久久不卡蜜臀 | 在线视频欧美区| 久久婷婷成人综合色| 国产日产亚洲精品系列| 五月婷婷激情综合| 日本韩国一区二区| 久久嫩草精品久久久精品一| 亚洲成人激情综合网| 91高清视频在线| 久久久久久久久久看片| 久久成人久久爱| 国产精品三级电影| 国产一区二区三区美女| 亚洲国产精品久久人人爱| 国产在线精品一区二区夜色| 美脚の诱脚舐め脚责91| 欧美一卡二卡在线| 日韩一区二区在线播放| 欧美三级资源在线| 不卡的av在线播放| 欧美aaaaa成人免费观看视频| 香蕉久久一区二区不卡无毒影院 | 国产乱人伦偷精品视频免下载| 亚洲1区2区3区4区| 五月天婷婷综合| 麻豆国产精品视频| 亚洲欧美视频一区| 奇米综合一区二区三区精品视频| 美脚の诱脚舐め脚责91 | 久久一留热品黄| 亚洲视频一区在线观看| 婷婷国产v国产偷v亚洲高清| 国产精品12区| 91精品国产欧美日韩| 一区二区三区精密机械公司| 久久福利资源站| 免费成人av资源网| 国产精品麻豆欧美日韩ww| 欧美v日韩v国产v| 日本一区二区三级电影在线观看 | 天天色天天爱天天射综合| 亚洲免费观看高清完整版在线观看 | 国产高清视频一区| 99久久免费视频.com| 不卡av在线网| 亚洲mv在线观看| 欧美三级日韩三级国产三级| 国产精品不卡一区二区三区| 国产另类ts人妖一区二区| 精品国产乱码久久| 国产剧情一区在线| 国产片一区二区| 成人精品一区二区三区中文字幕| 久久夜色精品国产噜噜av| 国产在线精品视频| 欧美精品一区二区久久久| 欧美a级一区二区| 久久久精品人体av艺术| 日本午夜精品一区二区三区电影| 欧美亚洲日本一区| 全国精品久久少妇| 欧美日韩aaaaa| 国产一区二区三区免费看| 国产精品麻豆一区二区| 91精彩视频在线| 日日夜夜免费精品| 91精品国产91综合久久蜜臀| 久久成人免费网| 亚洲日本青草视频在线怡红院| 欧美伊人久久久久久久久影院| 精品一区二区三区免费播放| 国产精品毛片大码女人| av不卡免费在线观看| 日韩精品午夜视频| 亚洲三级电影网站| 制服丝袜在线91| 99久久国产综合精品麻豆 | 91精品办公室少妇高潮对白| 日韩vs国产vs欧美| 国产拍欧美日韩视频二区| 7777女厕盗摄久久久| 日本乱人伦aⅴ精品| 国产成人无遮挡在线视频| 懂色av一区二区三区免费观看| 欧美成人三级电影在线| 91精品国产91久久综合桃花| 免费在线看一区| 日精品一区二区| 亚洲欧美日韩系列| 久久久精品影视| 2023国产一二三区日本精品2022| 在线观看免费亚洲| 色诱视频网站一区| 99国产精品久久| 一本大道av伊人久久综合| 91视视频在线观看入口直接观看www| 国内精品嫩模私拍在线| 五月婷婷久久丁香| 免费在线观看一区| 五月天亚洲精品| 久久国产成人午夜av影院| 久久se这里有精品| 一区二区三区四区中文字幕| 精品福利二区三区| 国内成人自拍视频| 国产一区啦啦啦在线观看| 国产成人免费视频网站| 国产精品资源网站| 91香蕉视频黄| 色婷婷av一区| 欧美亚洲国产一卡| 另类中文字幕网| 欧美大片一区二区| 欧美一区二区成人6969| 懂色av一区二区三区免费观看| 成人午夜视频网站| 不卡av电影在线播放| 91国产视频在线观看| 日韩一区二区三区免费看| 欧美激情一区二区| 亚洲成人黄色小说| 懂色av中文一区二区三区| 色香蕉成人二区免费| 久久综合久久鬼色| 日韩激情av在线| 豆国产96在线|亚洲| 成人国产精品视频| 色屁屁一区二区| 一区二区日韩电影| 成人一级黄色片| 久久色中文字幕| 日韩精品电影一区亚洲| 色偷偷久久一区二区三区| 91精品国产免费久久综合| 午夜欧美电影在线观看| 欧美自拍偷拍午夜视频| 亚洲欧洲精品成人久久奇米网| 九九九精品视频| 久久综合色婷婷| 国产精品一区二区久久精品爱涩 | 亚洲黄网站在线观看| 99久久99久久久精品齐齐| 国产精品久久影院| 丰满少妇久久久久久久| 国产亚洲一区二区在线观看| 国产精一区二区三区| 国产精品高潮久久久久无| 91一区二区三区在线观看| 亚洲综合色噜噜狠狠| 日韩午夜av电影| 国产激情精品久久久第一区二区| 久久精品亚洲一区二区三区浴池| 福利电影一区二区三区| 一区二区三区久久| 日韩精品在线网站| 风间由美一区二区三区在线观看| 一区二区三区免费看视频|