30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對它有一些基本的了解,讓你可以在自己的程序或網(wǎng)頁里使用它。
最重要的是——請給我30分鐘,如果你沒有使用正則表達(dá)式的經(jīng)驗(yàn),請不要試圖在30秒內(nèi)入門——除非你是超人 :)
別被下面那些復(fù)雜的表達(dá)式嚇倒,只要跟著我一步一步來,你會發(fā)現(xiàn)正則表達(dá)式其實(shí)并沒有想像中的那么困難。當(dāng)然,如果你看完了這篇教程之后,發(fā)現(xiàn)自己明白了很多,卻又幾乎什么都記不得,那也是很正常的——我認(rèn)為,沒接觸過正則表達(dá)式的人在看完這篇教程后,能把提到過的語法記住80%以上的可能性為零。這里只是讓你明白基本的原理,以后你還需要多練習(xí),多使用,才能熟練掌握正則表達(dá)式。
除了作為入門教程之外,本文還試圖成為可以在日常工作中使用的正則表達(dá)式語法參考手冊。就作者本人的經(jīng)歷來說,這個(gè)目標(biāo)還是完成得不錯(cuò)的——你看,我自己也沒能把所有的東西記下來,不是嗎?
清除格式 文本格式約定:專業(yè)術(shù)語 元字符/語法格式
正則表達(dá)式 正則表達(dá)式中的一部分(用于分析) 對其進(jìn)行匹配的源字符串 對正則表達(dá)式或其中一部分的說明
隱藏邊注 本文右邊有一些注釋,主要是用來提供一些相關(guān)信息,或者給沒有程序員背景的讀者解釋一些基本概念,通??梢院雎浴?/p>
字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號,空格,換行符,漢字等等。字符串是0個(gè)或更多個(gè)字符的序列。文本也就是文字,字符串。說某個(gè)字符串匹配某個(gè)正則表達(dá)式,通常是指這個(gè)字符串里有一部分(或幾部分分別)能滿足表達(dá)式給出的條件。
在編寫處理字符串的程序或網(wǎng)頁時(shí),經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說,正則表達(dá)式就是記錄文本規(guī)則的代碼。
很可能你使用過Windows/Dos下用于文件查找的通配符(wildcard),也就是*
和?
。如果你想查找某個(gè)目錄下的所有的Word文檔的話,你會搜索*.doc
。在這里,*
會被解釋成任意的字符串。和通配符類似,正則表達(dá)式也是用來進(jìn)行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當(dāng)然,代價(jià)就是更復(fù)雜——比如你可以編寫一個(gè)正則表達(dá)式,用來查找所有以0開頭,后面跟著2-3個(gè)數(shù)字,然后是一個(gè)連字號“-”,最后是7或8位數(shù)字的字符串(像010-12345678或0376-7654321)。
更多建議: