資料介紹
正則表達(dá)式是描述文本模式的表示法,它可以有效地構(gòu)造一種用于模式匹配的專用語言。雖然正則表達(dá)式可以有多種不同的形式,但它們都有著共同的特點(diǎn):模式中的大多數(shù)字符都是匹配字符串中的字符本身,但有些元字符(metacharacter)卻有著特定的含義,例如*表示某種重復(fù),而[...]表示方括號(hào)中字符集合的任何一個(gè)字符。
實(shí)際上,在文本編輯器之類的程序中,所執(zhí)行的查找操作都是查找文字,因此正則表達(dá)式通常是像“print”之類的字符串,而這類字符串將與文檔中所有的“printf”或者“sprintf”或者“printer paper”相匹配。在Unix和Windows中可以使用所謂的通配符來指定文件名,其中字符*可以用來匹配任意數(shù)量的字符,因此匹配模式*.c就將匹配所有以.c結(jié)尾的文件。此外,還有許許多多不同形式的正則表達(dá)式,甚至在有些情況下,這些正則表達(dá)式會(huì)被認(rèn)為都是相同的。Jeffrey Friedl編著的《Mastering Regular Expressions》一書對(duì)這一方面問題進(jìn)行了廣泛的研究。
Stephen Kleene在20世紀(jì)50年代的中期發(fā)明了正則表達(dá)式,用來作為有限自動(dòng)機(jī)的表示法,事實(shí)上,正則表達(dá)式與其所表示的有限自動(dòng)機(jī)是等價(jià)的。20世紀(jì)60年代年代中期,正則表達(dá)式最初出現(xiàn)在Ken Thompson版本的QED文本編輯器的程序設(shè)置中。1967年Thompson申請(qǐng)了一項(xiàng)基于正則表達(dá)式的快速文本匹配機(jī)制的專利。這項(xiàng)專利在1971年獲得了批準(zhǔn),它是最早的軟件專利之一[U.S. Patent 3,568,156, Text Matching Algorithm, March 2, 1971].
后來,正則表達(dá)式技術(shù)從QED移植到了Unix的編輯器ed中,然后又被移植到經(jīng)典的Unix工具grep中,而grpe正是由于Thompson對(duì)ed進(jìn)行了徹底地修改而形成的。這些廣為應(yīng)用的程序使得正則表達(dá)式為早期的Unix社群所熟知。
Thompson最初編寫的匹配器是非??斓模?yàn)樗Y(jié)合了兩種獨(dú)立的思想。一種思想是在匹配過程中動(dòng)態(tài)地生成機(jī)器指令,這樣就可以以機(jī)器指令執(zhí)行的速度而不是解釋執(zhí)行的速度來運(yùn)行。另一種思想是在每個(gè)階段中都盡可能地執(zhí)行匹配操作,這樣無需回朔(backtrack)就可以查找可能的匹配。在Thompson后來編寫的文本編輯器程序中,例如ed,匹配代碼使用了一種更為簡(jiǎn)單的算法,這種算法將會(huì)在必要的時(shí)候進(jìn)行回朔。從理論上來看,這種方法的運(yùn)行速度要更慢,但在實(shí)際情況中,這種模式很少需要進(jìn)行回朔,因此,ed和grep中的算法和代碼足以應(yīng)付大多數(shù)的情況。
在后來的正則表達(dá)式匹配器中,例如egrep和fgrep等,都增加了更為豐富的正則表達(dá)式類型,并且重點(diǎn)是要使得匹配器無論在什么模式下都能夠快速執(zhí)行。功能更為強(qiáng)大的正則表達(dá)式正在被越來越多地使用,它們不僅被包含在用C語言開發(fā)的庫中,而且還被作為腳本語言如Awk和Perl的語法的一部分。
實(shí)際上,在文本編輯器之類的程序中,所執(zhí)行的查找操作都是查找文字,因此正則表達(dá)式通常是像“print”之類的字符串,而這類字符串將與文檔中所有的“printf”或者“sprintf”或者“printer paper”相匹配。在Unix和Windows中可以使用所謂的通配符來指定文件名,其中字符*可以用來匹配任意數(shù)量的字符,因此匹配模式*.c就將匹配所有以.c結(jié)尾的文件。此外,還有許許多多不同形式的正則表達(dá)式,甚至在有些情況下,這些正則表達(dá)式會(huì)被認(rèn)為都是相同的。Jeffrey Friedl編著的《Mastering Regular Expressions》一書對(duì)這一方面問題進(jìn)行了廣泛的研究。
Stephen Kleene在20世紀(jì)50年代的中期發(fā)明了正則表達(dá)式,用來作為有限自動(dòng)機(jī)的表示法,事實(shí)上,正則表達(dá)式與其所表示的有限自動(dòng)機(jī)是等價(jià)的。20世紀(jì)60年代年代中期,正則表達(dá)式最初出現(xiàn)在Ken Thompson版本的QED文本編輯器的程序設(shè)置中。1967年Thompson申請(qǐng)了一項(xiàng)基于正則表達(dá)式的快速文本匹配機(jī)制的專利。這項(xiàng)專利在1971年獲得了批準(zhǔn),它是最早的軟件專利之一[U.S. Patent 3,568,156, Text Matching Algorithm, March 2, 1971].
后來,正則表達(dá)式技術(shù)從QED移植到了Unix的編輯器ed中,然后又被移植到經(jīng)典的Unix工具grep中,而grpe正是由于Thompson對(duì)ed進(jìn)行了徹底地修改而形成的。這些廣為應(yīng)用的程序使得正則表達(dá)式為早期的Unix社群所熟知。
Thompson最初編寫的匹配器是非??斓模?yàn)樗Y(jié)合了兩種獨(dú)立的思想。一種思想是在匹配過程中動(dòng)態(tài)地生成機(jī)器指令,這樣就可以以機(jī)器指令執(zhí)行的速度而不是解釋執(zhí)行的速度來運(yùn)行。另一種思想是在每個(gè)階段中都盡可能地執(zhí)行匹配操作,這樣無需回朔(backtrack)就可以查找可能的匹配。在Thompson后來編寫的文本編輯器程序中,例如ed,匹配代碼使用了一種更為簡(jiǎn)單的算法,這種算法將會(huì)在必要的時(shí)候進(jìn)行回朔。從理論上來看,這種方法的運(yùn)行速度要更慢,但在實(shí)際情況中,這種模式很少需要進(jìn)行回朔,因此,ed和grep中的算法和代碼足以應(yīng)付大多數(shù)的情況。
在后來的正則表達(dá)式匹配器中,例如egrep和fgrep等,都增加了更為豐富的正則表達(dá)式類型,并且重點(diǎn)是要使得匹配器無論在什么模式下都能夠快速執(zhí)行。功能更為強(qiáng)大的正則表達(dá)式正在被越來越多地使用,它們不僅被包含在用C語言開發(fā)的庫中,而且還被作為腳本語言如Awk和Perl的語法的一部分。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- Python正則表達(dá)式指南 10次下載
- 正則表達(dá)式在Vivado約束文件(xdc)中的應(yīng)用(轉(zhuǎn))
- Python正則表達(dá)式的學(xué)習(xí)指南 0次下載
- Python正則表達(dá)式教程之標(biāo)準(zhǔn)庫的完整介紹及使用示例說明 3次下載
- 如何在C++?Builder6上使用Boost正則表達(dá)式庫的詳細(xì)資料概述 1次下載
- 基于改進(jìn)正則表達(dá)式規(guī)則分組的內(nèi)網(wǎng)行為審計(jì)方案 0次下載
- 神奇的匹配:正則表達(dá)式求精之旅 掃描版帶目錄.part1 0次下載
- 神奇的匹配:正則表達(dá)式求精之旅 掃描版帶目錄.part2 0次下載
- 正則表達(dá)式學(xué)習(xí)心得 8次下載
- 基于正則表達(dá)式匹配的網(wǎng)絡(luò)設(shè)備自動(dòng)管理系統(tǒng)_李林廣 0次下載
- 基于正則表達(dá)式的數(shù)據(jù)處理應(yīng)用方斌 0次下載
- 源碼-正則表達(dá)式應(yīng)用一例 1次下載
- 正則表達(dá)式應(yīng)用一例 3次下載
- 精通正則表達(dá)式 5次下載
- PHP正則表達(dá)式 0次下載
- 詳解nginx中的正則表達(dá)式 298次閱讀
- nginx中的正則表達(dá)式和location路徑匹配指南 892次閱讀
- 你還不會(huì)gvim正則表達(dá)式?一文搞懂! 1255次閱讀
- GVIM正則表達(dá)式介紹和使用示例 1357次閱讀
- 什么是正則表達(dá)式?正則表達(dá)式如何工作?哪些語法規(guī)則適用正則表達(dá)式? 3819次閱讀
- OpenHarmony中使用正則表達(dá)式 1506次閱讀
- shell腳本基礎(chǔ):正則表達(dá)式grep 1285次閱讀
- 正則表達(dá)式(RegularExpression)使用指南 1596次閱讀
- 文本處理技巧之正則表達(dá)式 4019次閱讀
- C語言如何使用正則表達(dá)式 4968次閱讀
- 不懂正則表達(dá)式?不如借助這三個(gè)神器 2199次閱讀
- 教你如何輕松搞定Linux正則表達(dá)式 3645次閱讀
- 3分鐘搞定Linux正則表達(dá)式! 2852次閱讀
- 校驗(yàn)數(shù)字校驗(yàn)字符和特殊需求的常用正則表達(dá)式大全 5w次閱讀
- 快速入門IPv6和正則表達(dá)式 9050次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論