西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

正則表達(dá)式30分鐘入門教程(第二版)

pdf格式
  • 正則表達(dá)式30分鐘入門教程(第二版)pdf格式
  • 軟件大小:183KB
  • 更新時(shí)間:2010-12-04 13:14
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費(fèi)軟件 / 電子教程
  • 軟件等級:2級
  • 應(yīng)用平臺(tái):WinXP
  • 官方網(wǎng)站:http://elephantinaurance.com/
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

正則表達(dá)式30分鐘快速教程 pdf,30 分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對它有一些基本的了解,讓你可以在自己的程序或網(wǎng)頁里使用它。要想查找數(shù)字,字母或數(shù)字,空白是很簡單的,因?yàn)橐呀?jīng)有了對應(yīng)這些字符集合的元字符,但是如果你想匹配沒有預(yù)定義元字符的字符集合(比如元音字母a,e,i,o,u),應(yīng)該怎么辦?

如何使用本教程

別被下面那些復(fù)雜的表達(dá)式嚇倒,只要跟著我一步一步來,你會(huì)發(fā)現(xiàn)正則表達(dá)式其實(shí)并不像你想像中的那么困難。當(dāng)然,如果你看完了這篇教程之后發(fā)現(xiàn)自己明白了 很多,卻又幾乎什么都記不得,那也是很正常的——其實(shí)我認(rèn)為沒接觸過正則表達(dá)式的人在看完這篇教程后能把提到過的語法記住 80%以上的可能性為零。這里只 是讓你明白基本道理,以后你還需要多練習(xí),多查資料,才能熟練掌握正則表達(dá)式。

一些要說的話:

如果你沒有正則表達(dá)式的基礎(chǔ),請跟著教程“一步步來”。請不要大概地掃兩眼就說看不懂——以這種態(tài)度我寫成什么樣你也看不懂。當(dāng)我告訴你這是“30分鐘入門教程”時(shí),請不要試圖在30秒內(nèi)入門。
事實(shí)是,我身邊有個(gè)才接觸電腦,對操作都不是很熟練的人通過自己學(xué)習(xí)這篇教程,最后都能在文章采集系統(tǒng)中使用正則表達(dá)式完成任務(wù)。而且,他寫的表達(dá)式中,還使用了“零寬斷言”等“高級”技術(shù)。
所以,如果你能具體地說明你的問題,我很愿意幫助你。但是如果你概括地說看不懂,那不是我的問題。

正則表達(dá)式到底是什么東西?

字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號(hào),空格,換行符,漢字等等。字符串是0個(gè)或更多個(gè)字符的序列。文本也就是文字,字符串。說某個(gè)字符串匹配某個(gè)正則表達(dá)式,通常是指這個(gè)字符串里有一部分(或幾部分分別)能滿足表達(dá)式給出的條件。

在編寫處理字符串的程序或網(wǎng)頁時(shí),經(jīng)常會(huì)有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說,正則表達(dá)式就是記錄文本規(guī)則的代碼。

很可能你使用過Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某個(gè)目錄下的所有的Word文檔的話,你會(huì)搜索*.doc。在這里,*會(huì)被解釋成任意的字符串。和通配符類似,正則表達(dá)式也是用來進(jìn)行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當(dāng)然,代價(jià)就是更復(fù)雜——比如你可以編寫一個(gè)正則表達(dá)式,用來查找所有以0開頭,后面跟著2-3個(gè)數(shù)字,然后是一個(gè)連字號(hào)“-”,最后是7或8位數(shù)字的字符串(像010-12345678或0376-7654321)。

入門

學(xué)習(xí)正則表達(dá)式的最好方法是從例子開始,理解例子之后再自己對例子進(jìn)行修改,實(shí)驗(yàn)。下面給出了不少簡單的例子,并對它們作了詳細(xì)的說明。

假設(shè)你在一篇英文小說里查找hi,你可以使用正則表達(dá)式hi。

這幾乎是最簡單的正則表達(dá)式了,它可以精確匹配這樣的字符串:由兩個(gè)字符組成,前一個(gè)字符是h,后一個(gè)是i。通常,處理正則表達(dá)式的工具會(huì)提供一個(gè)忽略大小寫的選項(xiàng),如果選中了這個(gè)選項(xiàng),它可以匹配hi,HI,Hi,hI這四種情況中的任意一種。

不幸的是,很多單詞里包含hi這兩個(gè)連續(xù)的字符,比如him,history,high等等。用hi來查找的話,這里邊的hi也會(huì)被找出來。如果要精確地查找hi這個(gè)單詞的話,我們應(yīng)該使用\bhi\b。

\b是正則表達(dá)式規(guī)定的一個(gè)特殊代碼(好吧,某些人叫它元字符,metacharacter),代表著單詞的開頭或結(jié)尾,也就是單詞的分界處。雖然通常英文的單詞是由空格,標(biāo)點(diǎn)符號(hào)或者換行來分隔的,但是\b并不匹配這些單詞分隔字符中的任何一個(gè),它只匹配一個(gè)位置。

如果需要更精確的說法,\b匹配這樣的位置:它的前一個(gè)字符和后一個(gè)字符不全是(一個(gè)是,一個(gè)不是或不存在)\w。

假如你要找的是hi后面不遠(yuǎn)處跟著一個(gè)Lucy,你應(yīng)該用\bhi\b.*\bLucy\b。

這里,.是另一個(gè)元字符,匹配除了換行符以外的任意字符。*同樣是元字符,不過它代表的不是字符,也不是位置,而是數(shù)量——它指定*前邊的內(nèi)容可以連續(xù)重復(fù)使用任意次以使整個(gè)表達(dá)式得到匹配。因此,.*連在一起就意味著任意數(shù)量的不包含換行的字符,F(xiàn)在\bhi\b.*\bLucy\b的意思就很明顯了:先是一個(gè)單詞hi,然后是任意個(gè)任意字符(但不能是換行),最后是Lucy這個(gè)單詞。

換行符就是'\n',ASCII編碼為10(十六進(jìn)制0x0A)的字符。

如果同時(shí)使用其它元字符,我們就能構(gòu)造出功能更強(qiáng)大的正則表達(dá)式。比如下面這個(gè)例子:

0\d\d-\d\d\d\d\d\d\d\d匹配這樣的字符串:以0開頭,然后是兩個(gè)數(shù)字,然后是一個(gè)連字號(hào)“-”,最后是8個(gè)數(shù)字(也就是中國的電話號(hào)碼。當(dāng)然,這個(gè)例子只能匹配區(qū)號(hào)為3位的情形)。

這里的\d是個(gè)新的元字符,匹配一位數(shù)字(0,或1,或2,或……)。-不是元字符,只匹配它本身——連字符(或者減號(hào),或者中橫線,或者隨你怎么稱呼它)。

為了避免那么多煩人的重復(fù),我們也可以這樣寫這個(gè)表達(dá)式:0\d{2}-\d{8}。 這里\d后面的{2}({8})的意思是前面\d必須連續(xù)重復(fù)匹配2次(8次)。

測試正則表達(dá)式

其它可用的測試工具:

RegexBuddy

Javascript正則表達(dá)式在線測試工具

如果你不覺得正則表達(dá)式很難讀寫的話,要么你是一個(gè)天才,要么,你不是地球人。正則表達(dá)式的語法很令人頭疼,即使對經(jīng)常使用它的人來說也是如此。由于難于讀寫,容易出錯(cuò),所以找一種工具對正則表達(dá)式進(jìn)行測試是很有必要的。

不同的環(huán)境下正則表達(dá)式的一些細(xì)節(jié)是不相同的,本教程介紹的是微軟 .Net Framework 4.0 下正則表達(dá)式的行為,所以,我向你推薦我編寫的.Net下的工具 正則表達(dá)式測試器。請參考該頁面的說明來安裝和運(yùn)行該軟件。

軟件標(biāo)簽: 正則表達(dá)式 pdf

其他版本下載

最新評論查看所有(1)條評論 >

第 1 樓 河北石家莊鐵通 網(wǎng)友 客人 發(fā)表于: 2010/12/3 17:04:29
絕對值得分享的好東西

支持( 0 ) 蓋樓(回復(fù))

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(1)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載