正則表達(dá)式
通過(guò)與大多數(shù)讀者已經(jīng)熟悉的一些概念進(jìn)行比較,說(shuō)明正則表達(dá)式的概念。
本篇內(nèi)容全部來(lái)是 微軟 公司 文檔
對(duì)此表示感謝,像那些為此而工作過(guò)的人們.
除非您以前使用過(guò)正則表達(dá)式,否則您可能不熟悉此術(shù)語(yǔ)。但是,毫無(wú)疑問(wèn),您已經(jīng)使用過(guò)不涉及腳本的某些正則表達(dá)式概念。
例如,您很可能使用 ? 和 * 通配符來(lái)查找硬盤上的文件。? 通配符匹配文件名中的單個(gè)字符,而 * 通配符匹配零個(gè)或多個(gè)字符。像 data?.dat 這樣的模式將查找下列文件:
data1.dat
data2.dat
datax.dat
dataN.dat
使用 * 字符代替 ? 字符擴(kuò)大了找到的文件的數(shù)量。data*.dat 匹配下列所有文件:
data.dat
data1.dat
data2.dat
data12.dat
datax.da
dataXYZ.dat
盡管這種搜索方法很有用,但它還是有限的。? 和 * 通配符的能力引入了正則表達(dá)式所依賴的概念,但正則表達(dá)式功能更強(qiáng)大,而且更加靈活。
正則表達(dá)式的用途
通過(guò)實(shí)例說(shuō)明正則表達(dá)式如何擴(kuò)展常規(guī)搜索條件。
典型的搜索和替換操作要求您提供與預(yù)期的搜索結(jié)果匹配的確切文本。雖然這種技術(shù)對(duì)于對(duì)靜態(tài)文本執(zhí)行簡(jiǎn)單搜索和替換任務(wù)可能已經(jīng)足夠了,但它缺乏靈活性,若采用這種方法搜索動(dòng)態(tài)文本,即使不是不可能,至少也會(huì)變得很困難。
通過(guò)使用正則表達(dá)式,可以:
測(cè)試字符串內(nèi)的模式。
例如,可以測(cè)試輸入字符串,以查看字符串內(nèi)是否出現(xiàn)電話號(hào)碼模式或信用卡號(hào)碼模式。這稱為數(shù)據(jù)驗(yàn)證。
替換文本。
可以使用正則表達(dá)式來(lái)識(shí)別文檔中的特定文本,完全刪除該文本或者用其他文本替換它。
基于模式匹配從字符串中提取子字符串。
可以查找文檔內(nèi)或輸入域內(nèi)特定的文本。
例如,您可能需要搜索整個(gè) Web 站點(diǎn),刪除過(guò)時(shí)的材料,以及替換某些 HTML 格式標(biāo)記。在這種情況下,可以使用正則表達(dá)式來(lái)確定在每個(gè)文件中是否出現(xiàn)該材料或該 HTML 格式標(biāo)記。此過(guò)程將受影響的文件列表縮小到包含需要?jiǎng)h除或更改的材料的那些文件。然后可以使用正則表達(dá)式來(lái)刪除過(guò)時(shí)的材料。最后,可以使用正則表達(dá)式來(lái)搜索和替換標(biāo)記。
正則表達(dá)式在 JScript 或 C 等語(yǔ)言中也很有用,這些語(yǔ)言的字符串處理能力還不為人們所知。