資源描述:
《最全正則表達式教程、最好正則表達式教程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、正則表達式教程正則表達式到底是什么東西?字符是計算機軟件處理文字時最基本的單位,可能是字母,數(shù)字,標點符號,空格,換行符,漢字等等。字符串是0個或更多個字符的序列。文本也就是文字,字符串。說某個字符串匹配某個正則表達式,通常是指這個字符串里有一部分(或幾部分分別)能滿足表達式給出的條件。在編寫處理字符串的程序或網(wǎng)頁時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達式就是用于描述這些規(guī)則的工具。換句話說,正則表達式就是記錄文本規(guī)則的代碼。很可能你使用過Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某個目錄下的所
2、有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字符串。和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復(fù)雜——比如你可以編寫一個正則表達式,用來查找所有以0開頭,后面跟著2-3個數(shù)字,然后是一個連字號“-”,最后是7或8位數(shù)字的字符串(像010-12345678或0376-7654321)。入門元字符描述.點匹配任何單個字符。例如正則表達式r.t匹配這些字符串:rat、rut、rt,但是不匹配root。$匹配行結(jié)束符。例如正則表達式weasel$能夠匹配字符串"He'saw
3、easel"的末尾但是不能匹配字符串"Theyareabunchofweasels."^匹配一行的開始。例如正則表達式^Whenin能夠匹配字符串"Wheninthecourseofhumanevents"的開始,但是不能匹配"WhatandWheninthe"*匹配0或多個正好在它之前的那個字符。例如正則表達式.*意味著能夠匹配任意數(shù)量的任何字符。比如.*可以匹配不管是什么這是引用符,用來將這里列出的這些元字符當作普通的字符來進行匹配。例如正則表達式$被用來匹配美元符號,而不是行尾,類似的,正則表達式.用來匹配點字符,而不是
4、任何字符的通配符。[][c1-c2][^c1-c2]匹配括號中的任何一個字符。例如正則表達式r[aou]t匹配rat、rot和rut,但是不匹配ret??梢栽诶ㄌ栔惺褂眠B字符-來指定字符的區(qū)間,例如正則表達式[0-9]可以匹配任何數(shù)字字符;還可以制定多個區(qū)間,例如正則表達式[A-Za-z]可以匹配任何大小寫字母。另一個重要的用法是“排除”,要想匹配除了指定區(qū)間之外的字符——也就是所謂的補集——在左邊的括號和第一個字符之間使用^字符,例如正則表達式[^269A-Z]將匹配除了2、6、9和所有大寫字母之外的任何字符。14玉堂資料匯編正則表達式教程<>匹配詞(w
5、ord)的開始(<)和結(jié)束(>)。例如正則表達式能夠匹配字符串"forthewise"中的"the",但是不能匹配字符串"otherwise"中的"the"。注意:這個元字符不是所有的軟件都支持的。()將(和)之間的表達式定義為“組”(group),并且將匹配這個表達式的字符保存到一個臨時區(qū)域(一個正則表達式中最多可以保存9個),它們可以用1到9的符號來引用。
6、將兩個匹配條件進行邏輯“或”(Or)運算。例如正則表達式(him
7、her)匹配"itbelongstohim"和"itbelongstoher",但是不能匹配"itbelo
8、ngstothem."。注意:這個元字符不是所有的軟件都支持的。+匹配1或多個正好在它之前的那個字符。例如正則表達式9+匹配9、99、999等。注意:這個元字符不是所有的軟件都支持的。?匹配0或1個正好在它之前的那個字符。注意:這個元字符不是所有的軟件都支持的。{i}{i,j}匹配指定數(shù)目的字符,這些字符是在它之前的表達式定義的。例如正則表達式A[0-9]{3}能夠匹配字符"A"后面跟著正好3個數(shù)字字符的串,例如A123、A348等,但是不匹配A1234。而正則表達式[0-9]{4,6}匹配連續(xù)的任意4個、5個或者6個數(shù)字字符。注意:這個元字符不是所有的軟件都
9、支持的。學(xué)習(xí)正則表達式的最好方法是從例子開始,理解例子之后再自己對例子進行修改,實驗。下面給出了不少簡單的例子,并對它們作了詳細的說明。假設(shè)你在一篇英文小說里查找hi,你可以使用正則表達式hi。這幾乎是最簡單的正則表達式了,它可以精確匹配這樣的字符串:由兩個字符組成,前一個字符是h,后一個是i。通常,處理正則表達式的工具會提供一個忽略大小寫的選項,如果選中了這個選項,它可以匹配hi,HI,Hi,hI這四種情況中的任意一種。不幸的是,很多單詞里包含hi這兩個連續(xù)的字符,比如him,history,high等等。用hi來查找的話,這里邊的hi也會被找出來。如果要精
10、確地查找hi這個單詞的話,我們應(yīng)該使用