正則表達(dá)式是一種威力無比強大的武器,幾乎在所有的語言和平臺上都可以用它來執(zhí)行各種復(fù)雜的文本處理和操作。本書從簡單的文本匹配開始,循序漸進(jìn)地介紹了很多復(fù)雜內(nèi)容,包括反向引用、條件評估、環(huán)視等。每章都配有許多簡明實用的示例,有助于全面、系統(tǒng)、快速掌握正則表達(dá)式,并運用它們解決實際問題。
作為一種威力無比強大的武器,正則表達(dá)式可以在幾乎所有語言和平臺上執(zhí)行各種復(fù)雜的文本處理和操作。
●閱讀并理解正則表達(dá)式
●使用字面文本和元字符來構(gòu)建強大的搜索模式
●利用向前查看和反向引用等高級正則表達(dá)式特性
●在所有主流的專業(yè)編輯工具中執(zhí)行強大的搜索和替換操作
●為Web應(yīng)用程序添加復(fù)雜的表單和文本處理
●使用grep和egrep等命令行工具搜索文件
●在編程語言和數(shù)據(jù)庫中使用正則表達(dá)式
●電話號碼、IP地址、URL、電子郵件地址等常見問題的正則表達(dá)式解決方案
Ben Forta,技術(shù)作家,Adobe技術(shù)界知名學(xué)者,擁有三十多年計算機領(lǐng)域從業(yè)經(jīng)驗,目前擔(dān)任Adobe公司教育計劃高級主管。他撰寫的《SQL必知必會》《MySQL必知必會》等書因短小精悍、可快速入手而備受讀者好評,已被翻譯為十幾種文字,成為經(jīng)典暢銷書。
【主要譯者】
門佳,GNU/Linux深度用戶,喜歡溯本求源,挖掘技術(shù)背后的來龍去脈,對程序語言設(shè)計理論、編譯技術(shù)、操作系統(tǒng)設(shè)計與實現(xiàn)、Web開發(fā)等領(lǐng)域均有涉獵,譯著包括《TCP Sockets編程》《精通JavaScript(第2版)》《Linux命令行與shell腳本編程大全(第3版)》《Linux Shell腳本攻略》《shell腳本實戰(zhàn)(第2版)》等。
第 1 章 正則表達(dá)式入門 1
1.1 正則表達(dá)式的用途 1
1.2 如何使用正則表達(dá)式 2
1.2.1 用正則表達(dá)式進(jìn)行搜索 3
1.2.2 用正則表達(dá)式進(jìn)行替換 3
1.3 什么是正則表達(dá)式 4
1.4 使用正則表達(dá)式 5
1.5 在繼續(xù)學(xué)習(xí)之前 5
1.6 小結(jié) 6
第 2 章 匹配單個字符 7
2.1 匹配普通文本 7
2.1.1 有多少個匹配結(jié)果 8
2.1.2 字母的大小寫問題 9
2.2 匹配任意字符 9
2.3 匹配特殊字符 13
2.4 小結(jié) 15
第 3 章 匹配一組字符
3.1 匹配多個字符中的某一個 16
3.2 利用字符集合區(qū)間 19
3.3 排除 23
3.4 小結(jié) 24
第 4 章 使用元字符 25
4.1 再談轉(zhuǎn)義 25
4.2 匹配空白字符 28
4.3 匹配特定的字符類型 30
4.3.1 匹配數(shù)字(與非數(shù)字) 30
4.3.2 匹配字母數(shù)字(與非字母數(shù)字) 31
4.3.3 匹配空白字符(與非空白字符) 33
4.3.4 匹配十六進(jìn)制或八進(jìn)制數(shù)值 33
4.4 使用POSIX字符類 34
4.5 小結(jié) 36
第 5 章 重復(fù)匹配 37
5.1 有多少個匹配 37
5.1.1 匹配一個或多個字符 38
5.1.2 匹配零個或多個字符 41
5.1.3 匹配零個或一個字符 42
5.2 匹配的重復(fù)次數(shù) 44
5.2.1 具體的重復(fù)匹配 45
5.2.2 區(qū)間范圍 46
5.2.3 匹配至少重復(fù)多少次 48
5.3 防止過度匹配 49
5.4 小結(jié) 51
第 6 章 位置匹配 52
6.1 邊界 52
6.2 單詞邊界 53
6.3 字符串邊界 55
6.4 小結(jié) 60
第 7 章 使用子表達(dá)式 61
7.1 理解子表達(dá)式 61
7.2 使用子表達(dá)式進(jìn)行分組 62
7.3 子表達(dá)式的嵌套 66
7.4 小結(jié) 68
第 8 章 反向引用 69
8.1 理解反向引用 69
8.2 反向引用匹配 72
8.3 替換操作 75
8.4 小結(jié) 79
第 9 章 環(huán)視 80
9.1 環(huán)視簡介 80
9.2 向前查看 81
9.3 向后查看 83
9.4 結(jié)合向前查看和向后查看 86
9.5 否定式環(huán)視 86
9.6 小結(jié) 89
第 10 章 嵌入式條件 90
10.1 為什么要嵌入條件 90
10.2 正則表達(dá)式里的條件 91
10.2.1 反向引用條件 91
10.2.2 環(huán)視條件 94
10.3 小結(jié) 96
第 11 章 常見問題的正則表達(dá)式解決方案 97
11.1 北美電話號碼 97
11.2 美國ZIP編碼 99
11.3 加拿大郵政編碼 100
11.4 英國郵政編碼 101
11.5 美國社會安全號碼 102
11.6 IP地址 103
11.7 URL 103
11.8 完整的URL 105
11.9 電子郵件地址 106
11.10 HTML注釋 106
11.11 JavaScript注釋 107
11.12 信用卡號碼 108
11.13 小結(jié) 113
附錄 A 常見應(yīng)用軟件和編程語言中的正則表達(dá)式 114