[工學]正則表達式

[工學]正則表達式

ID:39963643

大?。?66.19 KB

頁數(shù):32頁

時間:2019-07-16

[工學]正則表達式_第1頁
[工學]正則表達式_第2頁
[工學]正則表達式_第3頁
[工學]正則表達式_第4頁
[工學]正則表達式_第5頁
資源描述:

《[工學]正則表達式》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、正則表達式正則表達式正則表達式的概念正則表達式的作用正則表達式的組成正則表達式的概念正則表達式到底是什么?正則表達式,就是用某種模式去從左向右地去匹配一類字符串的一個公式,換句話說,正則表達式就是記錄文本規(guī)則的代碼。正則表達式的作用正則表達式用于字符串處理、表單驗證等場合,實用高效。Windows/Dos下用于文件查找的通配符,是*和?。如果你想查找某個目錄下的所有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字符串。和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復(fù)

2、雜。某個字符串匹配某個正則表達式,通常是指這個字符串里有一部分(或幾部分分別)能滿足表達式給出的條件。正則表達式的組成正則表達式由一些普通字符和一些元字符組成。普通字符包括大小寫的字母和數(shù)字,而元字符則具有特殊的含義。在最簡單的情況下,一個正則表達式看上去就是一個普通的字符串。例如,正則表達式“Hello"中沒有包含任何元字符,它可以匹配“Hello"和"123Hello"等字符串,但是不能匹配“hello"。元字符元字符是正則表達式規(guī)定的特殊代碼。正則表達式中有很多元字符,例如:d匹配一位數(shù)字,b代表是字符串的開頭和結(jié)尾。下面列出一些元字符:常用

3、的一些元字符正則表達式基本書寫符號字符轉(zhuǎn)義當查找元字符本身時,比如查找.,或者*,無法指定它們,因為它們會被解釋成別的意思。這時你就得使用來取消這些字符的特殊意義。因此,你應(yīng)該使用.和*。當然,要查找本身,你也得用\.例如:Asp.net匹配Asp.net,C:\Windows匹配C:Windows。限定符正則表達式中所有的限定符是指定數(shù)量的代碼。正則表達式限定符符號正則表達式限定符符號限定符下面是一些使用重復(fù)的例子:Windowsd+匹配Windows后面跟1個或更多數(shù)字^w+匹配一行的第一個單詞(或整個字符串的第一個單詞,具體匹

4、配哪個意思得看選項設(shè)置)字符類問題:要想查找數(shù)字,字母或數(shù)字,空白是很簡單的,因為已經(jīng)有了對應(yīng)這些字符集合的元字符,但是如果你想匹配沒有預(yù)定義元字符的字符集合(比如元音字母a,e,i,o,u),應(yīng)該怎么辦?字符類很簡單,你只需要在方括號里列出它們就行了,像[aeiou]就匹配任何一個英文元音字母,[.?!]匹配標點符號(.或?或!)??梢灾付ㄒ粋€字符范圍,像[0-9]代表的含意與d就是完全一致的:一位數(shù)字;同理[a-z0-9A-Z_]也完全等同于w(如果只考慮英文的話)。字符類下面是一個更復(fù)雜的表達式:(?0d{2}[)-]?d{8}這個表達

5、式可以匹配幾種格式的電話號碼,像(010)88886666,或022-22334455,或02912345678等。我們對它進行一些分析吧:首先是一個轉(zhuǎn)義字符(,它能出現(xiàn)0次或1次(?),然后是一個0,后面跟著2個數(shù)字(d{2}),然后是)或-或空格中的一個,它出現(xiàn)1次或不出現(xiàn)(?),最后是8個數(shù)字(d{8})。這個表達式是個不好的表達式,因為它會匹配幾種不正確的格式。分枝條件剛才那個表達式也能匹配010)12345678或(022-87654321這樣的“不正確”的格式。要解決這個問題,我們需要用到分枝條件。正則表達式里的分枝條件指的是有幾種規(guī)

6、則,如果滿足其中任意一種規(guī)則都應(yīng)該當成匹配,具體方法是用

7、把不同的規(guī)則分隔開。例如:0d{2}-d{8}

8、0d{3}-d{7}這個表達式能匹配兩種以連字號分隔的電話號碼:一種是三位區(qū)號,8位本地號(如010-12345678),一種是4位區(qū)號,7位本地號(0376-2233445)。分枝條件(0d{2})[-]?d{8}

9、0d{2}[-]?d{8}這個表達式匹配3位區(qū)號的電話號碼,其中區(qū)號可以用小括號括起來,也可以不用,區(qū)號與本地號間可以用連字號或空格間隔,也可以沒有間隔。你可以試試用分枝條件把這個表達式擴展成也支持4位區(qū)號的。d

10、{5}-d{4}

11、d{5}這個表達式用于匹配美國的郵政編碼。美國郵編的規(guī)則是5位數(shù)字,或者用連字號間隔的9位數(shù)字。分枝條件之所以要給出這個例子是因為它能說明一個問題:使用分枝條件時,要注意各個條件的順序。如果你把它改成d{5}

12、d{5}-d{4}的話,那么就只會匹配5位的郵編(以及9位郵編的前5位)。原因是匹配分枝條件時,將會從左到右地測試每個條件,如果滿足了某個分枝的話,就不會去再管其它的條件了。分組我們已經(jīng)提到了怎么重復(fù)單個字符(直接在字符后面加上限定符就行了);但如果想要重復(fù)多個字符又該怎么辦?你可以用小括號來指定子表達式(也叫做分組)

13、,然后你就可以指定這個子表達式的重復(fù)次數(shù)了,你也可以對子表達式進行其它一些操作(后面會有介紹)

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。