資料介紹
正則表達(dá)式是描述文本模式的表示法,它可以有效地構(gòu)造一種用于模式匹配的專用語言。雖然正則表達(dá)式可以有多種不同的形式,但它們都有著共同的特點(diǎn):模式中的大多數(shù)字符都是匹配字符串中的字符本身,但有些元字符(metacharacter)卻有著特定的含義,例如*表示某種重復(fù),而[...]表示方括號中字符集合的任何一個字符。
實(shí)際上,在文本編輯器之類的程序中,所執(zhí)行的查找操作都是查找文字,因此正則表達(dá)式通常是像“print”之類的字符串,而這類字符串將與文檔中所有的“printf”或者“sprintf”或者“printer paper”相匹配。在Unix和Windows中可以使用所謂的通配符來指定文件名,其中字符*可以用來匹配任意數(shù)量的字符,因此匹配模式*.c就將匹配所有以.c結(jié)尾的文件。此外,還有許許多多不同形式的正則表達(dá)式,甚至在有些情況下,這些正則表達(dá)式會被認(rèn)為都是相同的。Jeffrey Friedl編著的《Mastering Regular Expressions》一書對這一方面問題進(jìn)行了廣泛的研究。
Stephen Kleene在20世紀(jì)50年代的中期發(fā)明了正則表達(dá)式,用來作為有限自動機(jī)的表示法,事實(shí)上,正則表達(dá)式與其所表示的有限自動機(jī)是等價的。20世紀(jì)60年代年代中期,正則表達(dá)式最初出現(xiàn)在Ken Thompson版本的QED文本編輯器的程序設(shè)置中。1967年Thompson申請了一項(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對ed進(jìn)行了徹底地修改而形成的。這些廣為應(yīng)用的程序使得正則表達(dá)式為早期的Unix社群所熟知。
Thompson最初編寫的匹配器是非常快的,因?yàn)樗Y(jié)合了兩種獨(dú)立的思想。一種思想是在匹配過程中動態(tài)地生成機(jī)器指令,這樣就可以以機(jī)器指令執(zhí)行的速度而不是解釋執(zhí)行的速度來運(yùn)行。另一種思想是在每個階段中都盡可能地執(zhí)行匹配操作,這樣無需回朔(backtrack)就可以查找可能的匹配。在Thompson后來編寫的文本編輯器程序中,例如ed,匹配代碼使用了一種更為簡單的算法,這種算法將會在必要的時候進(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á)式會被認(rèn)為都是相同的。Jeffrey Friedl編著的《Mastering Regular Expressions》一書對這一方面問題進(jìn)行了廣泛的研究。
Stephen Kleene在20世紀(jì)50年代的中期發(fā)明了正則表達(dá)式,用來作為有限自動機(jī)的表示法,事實(shí)上,正則表達(dá)式與其所表示的有限自動機(jī)是等價的。20世紀(jì)60年代年代中期,正則表達(dá)式最初出現(xiàn)在Ken Thompson版本的QED文本編輯器的程序設(shè)置中。1967年Thompson申請了一項(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對ed進(jìn)行了徹底地修改而形成的。這些廣為應(yīng)用的程序使得正則表達(dá)式為早期的Unix社群所熟知。
Thompson最初編寫的匹配器是非常快的,因?yàn)樗Y(jié)合了兩種獨(dú)立的思想。一種思想是在匹配過程中動態(tài)地生成機(jī)器指令,這樣就可以以機(jī)器指令執(zhí)行的速度而不是解釋執(zhí)行的速度來運(yùn)行。另一種思想是在每個階段中都盡可能地執(zhí)行匹配操作,這樣無需回朔(backtrack)就可以查找可能的匹配。在Thompson后來編寫的文本編輯器程序中,例如ed,匹配代碼使用了一種更為簡單的算法,這種算法將會在必要的時候進(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è)備自動管理系統(tǒng)_李林廣 0次下載
- 基于正則表達(dá)式的數(shù)據(jù)處理應(yīng)用方斌 0次下載
- 源碼-正則表達(dá)式應(yīng)用一例 1次下載
- 正則表達(dá)式應(yīng)用一例 3次下載
- 精通正則表達(dá)式 5次下載
- PHP正則表達(dá)式 0次下載
- 詳解nginx中的正則表達(dá)式 1.4k次閱讀
- nginx中的正則表達(dá)式和location路徑匹配指南 2.3k次閱讀
- 你還不會gvim正則表達(dá)式?一文搞懂! 2.7k次閱讀
- GVIM正則表達(dá)式介紹和使用示例 2.7k次閱讀
- 什么是正則表達(dá)式?正則表達(dá)式如何工作?哪些語法規(guī)則適用正則表達(dá)式? 5.9k次閱讀
- OpenHarmony中使用正則表達(dá)式 2.3k次閱讀
- shell腳本基礎(chǔ):正則表達(dá)式grep 2.1k次閱讀
- 正則表達(dá)式(RegularExpression)使用指南 2.5k次閱讀
- 文本處理技巧之正則表達(dá)式 5.4k次閱讀
- C語言如何使用正則表達(dá)式 5.6k次閱讀
- 不懂正則表達(dá)式?不如借助這三個神器 2.8k次閱讀
- 教你如何輕松搞定Linux正則表達(dá)式 4k次閱讀
- 3分鐘搞定Linux正則表達(dá)式! 3.2k次閱讀
- 校驗(yàn)數(shù)字校驗(yàn)字符和特殊需求的常用正則表達(dá)式大全 5w次閱讀
- 快速入門IPv6和正則表達(dá)式 9.9k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊
- 3.00 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管BC817數(shù)據(jù)手冊
- 2.51 MB | 次下載 | 免費(fèi)
- 3MDD品牌三極管D882數(shù)據(jù)手冊
- 3.49 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
- 3.26 MB | 次下載 | 免費(fèi)
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
- 3.09 MB | 次下載 | 免費(fèi)
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
- 2.32 MB | 次下載 | 免費(fèi)
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論