呦呦鹿鳴處 書卷彙成川

聯繫我們:
《精通正則表達式》封面

精通正則表達式

文件格式: EPUB · MOBI · PDF · TXT

獲取下載鏈接

隨著互聯網的迅速發展,幾乎所有工具軟件和程序語言都支持的正則表達式也變得越來越強大和易於使用。本書是講解正則表達式的經典之作。本書主要講解了正則表達式的特性和流派、匹配原理、優化原則、實用訣竅以及調校措施,並詳細介紹了正則表達式在Perl、Java、.NET、PHP中的用法。 本書自第1 版開始著力於教會讀者“以正則表達式來思考”,來讓讀者真正“精通”正則表達式。該版對PHP的相關內容、Java1.5和Java1.6的新特性作了可觀的擴充講解。任何有機會使用正則表達式的讀者都會從中獲益匪淺。

前言
第1章正則表達式入門
解決實際問題
作為編程語言的正則表達式
以文件名做類比
以語言做類比
正則表達式的思維框架
對於有部分經驗的讀者
檢索文本文件:Egrep
Egrep元字符
行的起始和結束
字符組
用點號匹配任意字符
多選結構
忽略大小寫
單詞分界符
小結
可選項元素
其他量詞:重複出現
括號及反向引用
神奇的轉義
基礎知識拓展
語言的差異
正則表達式的目標
更多的例子
正則表達式術語彙總
改進現狀
總結
一家之言
第2章入門示例拓展
關於這些例子
Perl簡單入門
使用正則表達式匹配文本
向實用的程序前進
成功匹配的副作用
錯綜複雜的正則表達式
暫停片刻
使用正則表達式修改文本
例子:公函生成程序
舉例:修整股票價格
自動的編輯操作
處理郵件的小工具
用環視功能為數值添加逗號
Text-to-HTML轉換
回到單詞重複問題
第3章正則表達式的特性和流派概覽
在正則的世界中漫步
正則表達式的起源
最初印象
正則表達式的注意事項和處理方式
集成式處理
程序式處理和麵向對象式處理
查找和替換
其他語言中的查找和替換
注意事項和處理方式:小結
字符串,字符編碼和匹配模式
作為正則表達式的字符串
字符編碼
Unicode
正則模式和匹配模式
常用的元字符和特性
字符表示法
字符組及相關結構
錨點及其他“零長度斷言”
註釋和模式量詞
分組,捕獲,條件判斷和控制
高級話題引導
第4章:表達式的匹配原理
發動引擎
兩類引擎
新的標準
正則引擎的分類
幾句題外話
測試引擎的類型
匹配的基礎
關於範例
規則1:優先選擇最左端的匹配結果
引擎的構造
規則2:標準量詞是匹配優先的
表達式主導與文本主導
NFA引擎:表達式主導
DFA引擎:文本主導
第一想法:比較NFA與DFA
回溯
真實世界中的例子:麵包屑
回溯的兩個要點
備用狀態
回溯與匹配優先
關於匹配優先和回溯的更多內容
匹配優先的問題
多字符“引文”
使用忽略優先量詞
匹配優先和忽略優先都期望獲得匹配
匹配優先、忽略優先和回溯的要旨
佔有優先量詞和固化分組
佔有優先量詞,?+、*+、++和{m,n}+
環視的回溯
多選結構也是匹配優先的嗎
發掘有序多選結構的價值
NFA、DFA和POSIX
最左最長規則
POSIX和最左最長規則
速度和效率
小結:NFA與DFA的比較
總結
第5章:正則表達式實用技巧
正則表達式的平衡法則
若干簡單的例子
匹配連續行(續前)
匹配IP地址
處理文件名
匹配對稱的括號
防備不期望的匹配
匹配分隔符之內的文本
瞭解數據,做出假設
去除文本首尾的空白字符
HTML相關範例
匹配HTMLTag
匹配HTMLLink
檢查HTTPURL
驗證主機名
在真實世界中提取URL
擴展的例子
保持數據的協調性
解析CSV文件
第6章:打造高效正則表達式
典型示例
稍加修改——先邁最好使的腿
效率vs準確性
繼續前進——限制匹配優先的作用範圍
實測
全面考查回溯
POSIXNFA需要更多處理
無法匹配時必須進行的工作
看清楚一點
多選結構的代價可能很高
性能測試
理解測量對象
PHP測試
Java測試
VB.NET測試
Ruby測試
Python測試
Tcl測試
常見優化措施
有得必有失
優化各有不同
正則表達式的應用原理
應用之前的優化措施
通過傳動裝置進行優化
優化正則表達式本身
提高表達式速度的訣竅
常識性優化
將文字文本獨立出來
將錨點獨立出來
忽略優先還是匹配優先?具體情況具體分析
拆分正則表達式
模擬開頭字符識別
使用固化分組和佔有優先量詞
主導引擎的匹配
消除循環
方法1:依據經驗構建正則表達式
真正的“消除循環”解法
方法2:自頂向下的視角
方法3:匹配主機名
觀察
使用固化分組和佔有優先量詞
簡單的消除循環的例子
消除C語言註釋匹配的循環
流暢運轉的表達式
引導匹配的工具
引導良好的正則表達式速度很快完工
總結:開動你的大腦
第7章:Perl
作為語言組件的正則表達式
Perl的長處
Perl的短處
Perl的正則流派
正則運算符和正則文字
正則文字的解析方式
正則修飾符
正則表達式相關的Perl教義
表達式應用場合
動態作用域及正則匹配效應
匹配修改的特殊變量
qr//運算符與regex對象
構建和使用regex對象
探究regex對象
用regex對象提高效率
Match運算符
Match的正則運算元
指定目標運算元
Match運算符的不同用途
迭代匹配:ScalarContext,不使用/g
Match運算符與環境的關係
Substitution運算符
運算元replacement
/e修飾符
應用場合與返回值
Split運算符
Split基礎知識
返回空元素
Split中的特殊Regex運算元
Split中帶捕獲型括號的match運算元
巧用Perl的專有特性
用動態正則表達式結構匹配嵌套結構
使用內嵌代碼結構
在內嵌代碼結構中使用local函數
關於內嵌代碼和my變量的忠告
使用內嵌代碼匹配嵌套結構
正則文字重載
正則文字重載的問題
模擬命名捕獲
效率
辦法不只一種
表達式編譯、/o修飾符、qr/···/和效率
理解“原文”副本
Study函數
性能測試
正則表達式調試信息
結語
第8章:Java
Java的正則流派
Java對\p{}和\P{}的支持
Unicode行終結符
使用java.util.regex
ThePattern.compile()Factory
Pattern的matcher方法
Matcher對象
應用正則表達式
查詢匹配結果
簡單查找-替換
高級查找-替換
原地查找-替換
Matcher的檢索範圍
方法鏈
構建掃描程序
Matcher的其他方法
Pattern的其他方法
Pattern的split方法,單個參數
Pattern的split方法,兩個參數
拓展示例
為ImageTag添加寬度和高度屬性
對於每個Matcher,使用多個Pattern校驗HTML
解析CSV文檔
Java版本差異
1.4.2 和1.5.0之間的差異
1.5.0和1.6 之間的差異
第9章:.NET
.NET的正則流派
對於流派的補充
使用.NET正則表達式
正則表達式快速入門
包概覽
核心對象概覽
核心對象詳解
創建Regex對象
使用Regex對象
使用Match對象
使用Group對象
靜態“便捷”函數
正則表達式緩存
輔助函數
.NET高級話題
正則表達式裝配件
匹配嵌套結構
Capture對象
第10章:PHP
PHP的正則流派
Preg函數接口
“Pattern”參數
Preg函數羅列
preg_match
preg_match_all
preg_replace
preg_replace_callback
preg_split
preg_grep
preg_quote
“缺失”的preg函數
preg_regex_to_pattern
對未知的Pattern參數進行語法檢查
對未知正則表達式進行語法檢查
遞歸的正則表達式
匹配嵌套括號內的文本
不能回溯到遞歸調用之內
匹配一組嵌套的括號
PHP效率
模式修飾符S:“研究”
擴展示例
用PHP解析CSV
檢查taggeddata的嵌套正確性
索引

《寫給所有人的編程思維》

你是否曾好奇,那些神秘莫測的數字、符號和代碼背後,究竟蘊藏著怎樣的力量?其實,它們只是冰山一角。真正的“編程思維”,是一場關於創造力與解決問題的冒險,一次將抽象思想具象化的華麗舞步! 從久遠的過去到可見的未來,驅動編程語言脈搏跳動的,並非冰冷的機器指令,而是一套深植於計算機科學、邏輯與數學基石的核...

查看詳情 →

《C和C++代碼精粹》

《C和C++代碼精粹》基於作者備受好評的C/C++ User Journal雜誌上的每月專欄,通過大量完全符合ISO標準C++的程序集合,說明了C++真正強大的威力,是C和C++職業程序員的實踐指南。 《C和C++代碼精粹》分為3篇共20章,分別從指針、預處理器、C標準庫、抽象、模板、異常、算法、容...

查看詳情 →

《梔子貓的奇幻編程之旅》

以梔子貓的冒險故事為主體,將編程知識與冒險故事相結合,少了生澀難懂的專業術語,多了趣味性和故事性,巧妙中孩子可以自學掌握編程的基礎知識,如變量、數據類型、動態數組,循環體、字符串操作、算法概念、函數概念、結構體數據封裝、排序、文件讀寫等奧賽必備知識,以及最重要的軟件設計思維和模塊化編程設計。 同時,...

查看詳情 →

《Windows核心編程(第5版)》

這是一本經典的Windows核心編程指南,從第1版到第5版,引領著數十萬程序員走入Windows開發陣營,培養了大批精英。. 作為Windows開發人員的必備參考,本書是為打算理解Windows的C和C++程序員精心設計的。第5版全面覆蓋Windows XP,Windows Vista和Window...

查看詳情 →