歡迎來到逍遙右腦記憶網-免費提供各種記憶力訓練學習方法!

讀書筆記大全-Mastering Regular Expressions讀書筆記

編輯: 路逍遙 關鍵詞: 讀書筆記大全 來源: 逍遙右腦記憶

  正則表達式的“祖先”可以一直上溯至對人類神經系統(tǒng)如何工作的早期研究。warren mcculloch 和 walter pitts 這兩位神經生理學家研究出一種數學方式來描述這些神經網絡。1956 年, 一位叫 stephen kleene 的數學家在 mcculloch 和 pitts 早期工作的基礎上,發(fā)表了一篇標題為“神經網事件的表示法”的論文,引入了正則表達式的概念。正則表達式就是用來描述他稱為“正則集的代數”的表達式,因此采用“正則表達式”這個術語。

  涉及到了數據的解析,自然離不開對regular expressions(正則表達式)的溫習;在jdk官方源碼中看到了對《mastering regular expressions, 2nd edition》的推薦;由jeffrey e.f. friedl大師主刀,o'reilly于XX年再版。對o'reilly的書向有好感,像當年誤入java的歧途,沒看java編程思想之類的,倒看了o'reilly的一本影印版《java in a nutshell》,頗留記憶。

  隨后,發(fā)現(xiàn)可以將這一工作應用于使用 ken thompson 的計算搜索算法的一些早期研究,ken thompson 是 unix 的主要發(fā)明人。正則表達式的第一個實用應用程序就是 unix 中的 qed 編輯器。

  目前,正則表達式已經在很多軟件中得到廣泛的應用,包括*nix(linux, unix等),hp等操作系統(tǒng);php,perl,python,c#,java等開發(fā)環(huán)境,以及很多的應用軟件中,for example:網絡上的搜索引擎,數據庫的全文檢索etc...

  本筆記是是自我學習過程的一個整理,例子或來源于書本,或自己枚舉。

  1、正則表達式的介紹

  1.1、行開始和結束

  ^begin line。匹配行開頭,如^cat匹配以cat開頭的

  $end line。匹配行結束,如cat$匹配以cat結束的;^cat$僅僅匹配該行有cat

  1.2、匹配給定的字符序列

  [...],表示in。里面寫入欲匹配的幾個字符,如,匹配seperate,separete,separate";匹配

  , etc.[a-z]代表從a到z中的任意字符,[0-9]、[a-z]分別代表0-9,a-z中的任意數字或大寫字母;“-”代表連續(xù)的從開始字符到結束;那么[0123456789abcdefabcdef]也可以寫為[0-9a-fa-f];對于這些頻繁使用的字符,各語言分別做了相同的預定義:

  1.3、匹配非給定的字符(非...)

  [^]匹配,表示not。^和行開頭的標記完全一樣,但寫的位置不一樣,則表述的意思可能完全相反,用^表示否定的意思,更多是寫在[]里面,如:q[^u]匹配q后面緊跟非u的字符,如iraqi,qasida,zaqqum,iraq;沒錯,"iraq"這個單詞也會被匹配,盡管q后面什么也沒有,也可能有個空格、或回車符等。否定字符的意思(翻譯出來繞口):means "match a character that's not listed" and not "don't match what is listed."


本文來自:逍遙右腦記憶 http://portlandfoamroofing.com/dushubiji/1261300.html

相關閱讀:《春盡江南》讀書筆記
《活在當下vs活在未來》讀書筆記
《人生若只如初見》讀書筆記1000字
《假如給我三天光明》讀書筆記
語文讀書筆記300字