徐安令
摘要:正則表達(dá)式本質(zhì)上來(lái)說(shuō)是一項(xiàng)規(guī)則,而這種規(guī)則主要用來(lái)對(duì)一類字符串的共性進(jìn)行描述,正則表達(dá)式的發(fā)展,已形成了一種從字符的集合中來(lái)尋找某個(gè)指定的字符串的程序工具。它具有既簡(jiǎn)潔又結(jié)構(gòu)化的優(yōu)點(diǎn),近年來(lái),正則表達(dá)式已經(jīng)從一個(gè)模糊的數(shù)概念,發(fā)展成了一項(xiàng)重要的,在各個(gè)領(lǐng)域都有重大作用,能解決很多實(shí)際問(wèn)題的計(jì)算機(jī)功能,本文主要講述了正則表達(dá)式的概念,意義及實(shí)際應(yīng)用等問(wèn)題,希望能有助于人們對(duì)正則表達(dá)有更客觀的認(rèn)識(shí),并加深對(duì)它的研究。
關(guān)鍵詞:正則表達(dá)式 概念 背景與意義 應(yīng)用
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)05-0000-00
1正則表達(dá)式的概念
正則表達(dá)式本質(zhì)上來(lái)說(shuō)是某種遵循一定規(guī)則的表達(dá)式,同時(shí)也可以認(rèn)為是一種程序語(yǔ)言,這種語(yǔ)言能對(duì)文字進(jìn)行較為模糊的匹配。具體來(lái)說(shuō)就是,正則表達(dá)式可以用某些特殊符號(hào)代表一組字符和指定對(duì)其匹配的次數(shù),當(dāng)然,前提是這種字符必須具有某種特征,此時(shí),具有這些特殊符號(hào)的文本就不再用以表示特定文本的內(nèi)容了,反而是變成了文本模式,這種文本模式就可以對(duì)所有符合此模式的一切文本串進(jìn)行匹配。
2正則表達(dá)式的應(yīng)用背景與意義
隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)已經(jīng)成為了人們獲取信息的重要手段,并且更好地實(shí)現(xiàn)了資源與信息的共享,然而網(wǎng)絡(luò)信息仍然有很多不足,如存在很多諸如數(shù)據(jù)語(yǔ)義信息不清晰、模式等不明確、表現(xiàn)形式單一、信息利用率較為低下的問(wèn)題,而這些問(wèn)題都可以通過(guò)應(yīng)用正則表達(dá)式來(lái)解決。正則表達(dá)式本身就是一種程序語(yǔ)言,能對(duì)文字進(jìn)行較為模糊的匹配,通過(guò)對(duì)文字的匹配提取等,網(wǎng)絡(luò)信息的抽取也能變得容易起來(lái)。根據(jù)定制的模板,從文本中把特定的信息抽取出來(lái),使這些數(shù)據(jù)相對(duì)結(jié)構(gòu)化,并且還要分析和整理這些信息內(nèi)容,以上操作即為信息抽取的過(guò)程。這種信息抽取的作用類似于信息檢索,但其比信息檢索更為前沿和新穎,近幾年已經(jīng)成為了研究網(wǎng)絡(luò)信息處理的熱點(diǎn)問(wèn)題,而正則表達(dá)式,在抽取信息、搜集數(shù)據(jù)等各個(gè)方面都發(fā)揮著重要的作用,基于其是對(duì)一類字符串進(jìn)行共性描述的規(guī)則,它更是一種處理字符串并且尋找特定字符串必不可少的工具。
3正則表達(dá)式的分類
(1)以功能為標(biāo)準(zhǔn)進(jìn)行區(qū)分:可分為基本正則表達(dá)式與擴(kuò)展正則表達(dá)式。前者包含于后者之中。
(2)以實(shí)現(xiàn)方式為標(biāo)準(zhǔn)區(qū)分:基于確定型有窮自動(dòng)機(jī)引擎和基于非確定型有窮自動(dòng)機(jī)引擎,這兩種實(shí)現(xiàn)方式有理論上的區(qū)別,因此在應(yīng)用范圍上也有很大的不用。
(3)以對(duì)邏輯結(jié)構(gòu)的描述的精確度區(qū)分:用于校驗(yàn)檢測(cè)的,需要完全精確地對(duì)字符串進(jìn)行描述的類型,和用于數(shù)據(jù)提取的,需要描述的精確度不高的類型。
4正則表達(dá)式的應(yīng)用
4.1應(yīng)用于通過(guò)文本解決實(shí)際問(wèn)題
正則表達(dá)式是美國(guó)數(shù)學(xué)家Stephen Kleene 提出的,可以通過(guò)提取、替換文本子字符串的方式來(lái)快速分析大量的文本并且能找到特定的某種字符模式的一種程序。其最開始的主要作用是用來(lái)對(duì)正則集代數(shù)進(jìn)行描述。后來(lái)也應(yīng)用于實(shí)用Ken Thompson 的計(jì)算搜索上的某些研究探討上。當(dāng)前正則表達(dá)式的應(yīng)用已不單單局限于字符層面的處理了,而是能夠應(yīng)用于各個(gè)領(lǐng)域了,尤其是在解決實(shí)際問(wèn)題方面,作用更加突出,比如可以用來(lái)對(duì)數(shù)據(jù)的有效性合法性進(jìn)行驗(yàn)證等,目前最普遍的是在對(duì)用戶密碼、電話號(hào)碼等身份驗(yàn)證等方面發(fā)揮作用??傊?,大多數(shù)與文本關(guān)系密切的問(wèn)題,如果應(yīng)用正則表達(dá)式這種方法來(lái)加以解決,都會(huì)是更高效的,并且相對(duì)于其他方法來(lái)說(shuō),也會(huì)顯得更加簡(jiǎn)潔。
4.2 應(yīng)用于內(nèi)容格式的顯示
現(xiàn)在多數(shù)信息在信息庫(kù)中都是以html 的形式存儲(chǔ)的,并且前臺(tái)內(nèi)容也會(huì)因后臺(tái)管理上對(duì)各板塊排版格式的變化而各有不同,更重要的是即使改版頁(yè)面,也不能完全修改數(shù)據(jù)庫(kù)中的html 的格式。要解決這一問(wèn)題,正則表達(dá)式就派上了用場(chǎng)。我們完全可以用正則表達(dá)式這一方法將以已讀取的html代碼換種形式,即替換為格式控制代碼,進(jìn)而控制html的顯示。
4.3應(yīng)用于信息的抽取
近幾年來(lái),計(jì)算機(jī)發(fā)展十分迅速,隨之而來(lái)的便是信息爆炸和大量電子文檔的泛濫,尋找一種能在大量的信息中抽取能滿足不同人需求的信息的技術(shù)方法,也就成為了時(shí)代的要求,而正則表達(dá)式在這種需求中也就應(yīng)運(yùn)而生了,顧名思義,從文本中抽取信息即為信息抽取。
(1)web 新聞網(wǎng)頁(yè)中的信息用正則表達(dá)式來(lái)提取。信息網(wǎng)頁(yè)具有很多其他媒體不具備的特點(diǎn),包括時(shí)效性強(qiáng),信息量大、結(jié)構(gòu)較為穩(wěn)定等各個(gè)特點(diǎn),因此它的應(yīng)用率更高,尤其是新聞網(wǎng)頁(yè),只要是符合條件的新聞紀(jì)錄,都會(huì)在它的檢索條件內(nèi),其作用相當(dāng)于是充當(dāng)了“索引”的角色,對(duì)于這一龐大的信息網(wǎng),也就更適合采用正則表達(dá)式的方式來(lái)進(jìn)行信息提取,若是采用其他手段,則不會(huì)如此快速高效的實(shí)現(xiàn)信息的提取利用。
(2)文本文檔中的信息用正則表達(dá)式來(lái)抽取。對(duì)于一些以文本格式存儲(chǔ)的電子文檔,如果能實(shí)現(xiàn)這些非結(jié)構(gòu)化的文本格式向半結(jié)構(gòu)化的格式的轉(zhuǎn)變,那么勢(shì)必會(huì)有利于人們實(shí)現(xiàn)資源的充分利用,并且能最大程度上提高資源的利用效率。為了實(shí)現(xiàn)這一目的,正則表達(dá)式的利用是必不可少的。
5結(jié)語(yǔ)
正則表達(dá)式是一種由普通字符和元字符構(gòu)成的特殊的字符串,應(yīng)用此技術(shù)可以在數(shù)據(jù)提取、驗(yàn)證其格式的有效性等各方面展開工作,提高其效率及時(shí)效性,因此具有很大的實(shí)際應(yīng)用價(jià)值,以上提出的關(guān)于正則表達(dá)式的幾項(xiàng)應(yīng)用,希望能對(duì)從事這些工作的人有所幫助。
參考文獻(xiàn)
[1]余晟(譯),(美) Jeffrey E.F.Friedl 著.精通正則表達(dá)式.第3版.北京:電子工業(yè)出版社,2007.
[2]李銘(譯),(美) Christian Nagel, Bill Evjen, Jay Glynn 著,C#2005&.NET3.0 高級(jí)編程.第5版.北京:清華大學(xué)出版社,2007.
[3]王珊,陳紅.數(shù)據(jù)庫(kù)系統(tǒng)原理教程.北京:清華大學(xué)出版社,2000.
[4]宋鑫坤,陳萬(wàn)米,朱明,等.基于正則表達(dá)式的語(yǔ)音識(shí)別控制策略研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(2):106-109.