正則表達(dá)式在網(wǎng)頁處理中的應(yīng)用四則
正則表達(dá)式(Regular Expression)為字符串模式匹配提供了一種高效、方便的方法。幾乎所有高級(jí)語言都提供了對(duì)正則表達(dá)式的支持,或者提供了現(xiàn)成的代碼庫(kù)供調(diào)用。本文以ASP環(huán)境中常見的處理任務(wù)為例,介紹正則表達(dá)式的應(yīng)用技巧。
一、檢驗(yàn)密碼和郵件地址的格式
我們的第一個(gè)實(shí)例示范正則表達(dá)式的一項(xiàng)基本功能:抽象地描述任意復(fù)雜的字符串。它的意思就是,正則表達(dá)式給予程序員一種形式化的字符串描述方法,只需很少的代碼即可描述出應(yīng)用遇到的任意字符串模式。例如,對(duì)于不從事技術(shù)工作的人來說,密碼格式的要求可以描述如下:密碼的第一個(gè)字符必須是字母,密碼最少4 個(gè)字符且不超過15個(gè)字符,密碼不能包含除字母、數(shù)字和下劃線以外的字符。
作為程序員,我們必須把上面對(duì)密碼格式的自然語言描述轉(zhuǎn)換成其他形式,使得ASP頁面能夠理解并應(yīng)用它來防止非法的密碼輸入。描述這個(gè)密碼格式的正則表達(dá)式是:^[a-zA-Z]\w{3,14}$。
在ASP應(yīng)用里,我們可以把密碼驗(yàn)證過程寫成可重用的函數(shù),如下所示:
Function TestPassword(strPassword)
Dim re
Set re = new RegExp
re.IgnoreCase = false
re.global = false
re.Pattern = "^[a-zA-Z]\w{3,14}$"
TestPassword = re.Test(strPassword)
End Function
?
下面我們把這個(gè)檢驗(yàn)密碼格式的正則表達(dá)式和自然語言描述對(duì)比著看看:
密碼的第一個(gè)字符必須是字母:正則表達(dá)式描述是“^[a-zA-Z]”,其中“^”表示字符串的開始,連字符告訴RegExp匹配指定范圍的所有字符。
密碼最少4個(gè)字符且不超過15個(gè)字符:正則表達(dá)式描述是“{3,14}”。
密碼不能包含除字母、數(shù)字和下劃線以外的字符:正則表達(dá)式描述是“\w”。
幾點(diǎn)說明:{3,14}表示前面的模式匹配至少3個(gè)、但不超過14個(gè)的字符(加上第一個(gè)字符就成了4到15個(gè)字符)。注意花括號(hào)內(nèi)的語法要求極其嚴(yán)格,不允許在逗號(hào)的兩邊加入空格。如果加入了空格,它將對(duì)正則表達(dá)式的含義產(chǎn)生影響,導(dǎo)致密碼格式檢驗(yàn)時(shí)產(chǎn)生錯(cuò)誤。另外,上面的正則表達(dá)式末尾也沒有加上 “$”字符。$字符使得正則表達(dá)式匹配字符串直至末尾,確保合法的密碼后面沒有加上任何其他字符。
類似于密碼格式檢驗(yàn),檢查email地址的合法性也是一個(gè)很常見的問題,用正則表達(dá)式進(jìn)行簡(jiǎn)單的email地址檢驗(yàn)可以實(shí)現(xiàn)如下:
<%
Dim re
Set re = new RegExp
re.pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
Response.Write re.Test("aabb@yahoo.com")
%>
?文章來源:http://www.zghlxwxcb.cn/news/detail-672183.html
二、提取HTML頁面的特定部分
從HTML頁面提取內(nèi)容所面臨的主要問題是,我們必須尋找一種方法精確地識(shí)別出自己想要的那一部分內(nèi)容。例如,下面是一個(gè)顯示新聞標(biāo)題的HTML代碼片斷:文章來源地址http://www.zghlxwxcb.cn/news/detail-672183.html
到了這里,關(guān)于正則表達(dá)式在網(wǎng)頁處理中的應(yīng)用四則的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!