歡迎來(lái)到逍遙右腦記憶網(wǎng)-免費(fèi)提供各種記憶力訓(xùn)練學(xué)習(xí)方法!

Mastering Regular Expressions讀書(shū)筆記

編輯: 路逍遙 關(guān)鍵詞: 讀書(shū)筆記大全 來(lái)源: 逍遙右腦記憶
正則表達(dá)式的“祖先”可以一直上溯至對(duì)人類神經(jīng)系統(tǒng)如何工作的早期研究。warren mcculloch 和 walter pitts 這兩位神經(jīng)生理學(xué)家研究出一種數(shù)學(xué)方式來(lái)描述這些神經(jīng)網(wǎng)絡(luò)。1956 年, 一位叫 stephen kleene 的數(shù)學(xué)家在 mcculloch 和 pitts 早期工作的基礎(chǔ)上,發(fā)表了一篇標(biāo)題為“神經(jīng)網(wǎng)事件的表示法”的論文,引入了正則表達(dá)式的概念。正則表達(dá)式就是用來(lái)描述他稱為“正則集的代數(shù)”的表達(dá)式,因此采用“正則表達(dá)式”這個(gè)術(shù)語(yǔ)。  涉及到了數(shù)據(jù)的解析,自然離不開(kāi)對(duì)regular expressions(正則表達(dá)式)的溫習(xí);在jdk官方源碼中看到了對(duì)《mastering regular expressions, 2nd edition》的推薦;由jeffrey e.f. friedl大師主刀,o'reilly于XX年再版。對(duì)o'reilly的書(shū)向有好感,像當(dāng)年誤入java的歧途,沒(méi)看java編程思想之類的,倒看了o'reilly的一本影印版《java in a nutshell》,頗留記憶! ‰S后,發(fā)現(xiàn)可以將這一工作應(yīng)用于使用 ken thompson 的計(jì)算搜索算法的一些早期研究,ken thompson 是 unix 的主要發(fā)明人。正則表達(dá)式的第一個(gè)實(shí)用應(yīng)用程序就是 unix 中的 qed 編輯器。  目前,正則表達(dá)式已經(jīng)在很多軟件中得到廣泛的應(yīng)用,包括*nix(linux, unix等),hp等操作系統(tǒng);php,perl,python,c#,java等開(kāi)發(fā)環(huán)境,以及很多的應(yīng)用軟件中,for example:網(wǎng)絡(luò)上的搜索引擎,數(shù)據(jù)庫(kù)的全文檢索etc...  本筆記是是自我學(xué)習(xí)過(guò)程的一個(gè)整理,例子或來(lái)源于書(shū)本,或自己枚舉! 1、正則表達(dá)式的介紹  1.1、行開(kāi)始和結(jié)束  ^begin line。匹配行開(kāi)頭,如^cat匹配以cat開(kāi)頭的  $end line。匹配行結(jié)束,如cat$匹配以cat結(jié)束的;^cat$僅僅匹配該行有cat  1.2、匹配給定的字符序列  [...],表示in。里面寫(xiě)入欲匹配的幾個(gè)字符,如,匹配seperate,separete,separate";匹配  , etc.[a-z]代表從a到z中的任意字符,[0-9]、[a-z]分別代表0-9,a-z中的任意數(shù)字或大寫(xiě)字母;“-”代表連續(xù)的從開(kāi)始字符到結(jié)束;那么[0123456789abcdefabcdef]也可以寫(xiě)為[0-9a-fa-f];對(duì)于這些頻繁使用的字符,各語(yǔ)言分別做了相同的預(yù)定義:  1.3、匹配非給定的字符(非...)  [^]匹配,表示not。^和行開(kāi)頭的標(biāo)記完全一樣,但寫(xiě)的位置不一樣,則表述的意思可能完全相反,用^表示否定的意思,更多是寫(xiě)在[]里面,如:q[^u]匹配q后面緊跟非u的字符,如iraqi,qasida,zaqqum,iraq;沒(méi)錯(cuò),"iraq"這個(gè)單詞也會(huì)被匹配,盡管q后面什么也沒(méi)有,也可能有個(gè)空格、或回車符等。否定字符的意思(翻譯出來(lái)繞口):means "match a character that's not listed" and not "don't match what is listed."  1.4、匹配任何字符  .匹配,表示any。任何字符,如07.04匹配:07_04,07-04,07 04,07.04 etc;如想要精確匹配07/04,07-04,or 07.04;需要寫(xiě)07[-./]04;沒(méi)錯(cuò)當(dāng).在[]里面包含的時(shí)候,僅僅表示“.”字符而已,如果不在[]里面,需要轉(zhuǎn)義\\. 如匹配形如x.y的小數(shù):是[0-9]\\.[0-9],而非[0-9].[0-9]  1.5、匹配幾個(gè)給定的字符序列中的一個(gè)  |匹配,表示or。to be continued....  別看它似乎很深?yuàn)W,其實(shí)學(xué)起來(lái)很容易的。歡迎一起來(lái)探討啊。
本文來(lái)自:逍遙右腦記憶 http://portlandfoamroofing.com/dushubiji/1174223.html

相關(guān)閱讀:關(guān)于悲慘世界苦難百科讀后感1000字
讀《飄》有感_深?yuàn)W的愛(ài)情
伊索寓言讀書(shū)筆記選集
童年讀書(shū)筆記400字
白巖松《行走在愛(ài)與恨之間》讀書(shū)筆記_從怨恨之外看一次日本