正則指引(第2版)

正則指引(第2版)

《正則指引(第2版)》是2018年10月電子工業出版社出版的圖書,作者是余晟。

基本介紹

  • 中文名:正則指引(第2版)
  • 作者:余晟
  • 出版社:電子工業出版社
  • 出版時間:2018年10月
  • 頁數:388 頁
  • 定價:89 元
  • 開本:16 開
  • ISBN:9787121351303
內容簡介,圖書目錄,

內容簡介

本書綜合作者自己遇到的實際問題,以及其他開發人員諮詢的問題,總結出一套巧妙運用正則表達式的辦法,並通過具體的例子指導讀者拆解、分析問題。全書分為三部分:第一部分主要講解正則表達式的基礎知識,涵蓋了正則表達式中常見的各種功能和結構;第二部分主要講解關於正則表達式的更深入的知識,詳細探討了編碼問題、匹配原理、解題思路;第三部分將之前介紹的各種知識落實到常用語言.NET、Java、JavaScript、PHP、Python、Ruby、Objective-C、Golang中,在詳細介紹了在這些語言中正則表達式的具體用法之外,還辨析了版本之間的細微差異。本書既可以作為專門的學習用書,也可以作為備查的參考手冊。

圖書目錄

第一部分
第1章 字元組 .................2
1.1 普通字元組 ............. 2
1.2 關於Python的基礎知識........................... 4
1.3 普通字元組(續) . 6
1.4 元字元與轉義 ......... 8
1.5 排除型字元組 ....... 10
1.6 字元組簡記法 ....... 12
1.7 字元組運算 ........... 14
1.8 POSIX字元組 ...... 15
第2章 量詞 ...................17
2.1 一般形式 ............... 17
2.2 常用量詞 ............... 19
2.3 數據提取 ............... 21
2.4 點號....................... 23
2.5 濫用點號的問題 ... 23
2.6 忽略優先量詞 ....... 26
2.7 轉義....................... 31
第3章 括弧 ...................33
3.1 分組....................... 33
3.2 多選結構 ............... 39
3.3 引用分組 ............... 44
3.3.1 反向引用... 48
3.3.2 各種引用的記法 .......................... 50
3.3.3 命名分組... 53
3.4 非捕獲分組 ........... 55
3.5 補充....................... 56
3.5.1 轉義 .......... 56
3.5.2 URL Rewrite ................................ 56
3.5.3 一個例子... 58
第4章 斷言 ...................60
4.1 單詞邊界 ............... 60
4.2 行起始/結束位置 .. 62
4.3 環視....................... 69
4.4 補充....................... 75
4.4.1 環視的價值 .................................. 75
4.4.2 環視與分組編號 .......................... 76
4.4.3 環視的支持程度 .......................... 77
4.4.4 環視的組合 .................................. 79
4.4.5 斷言和反向引用之間的關係 ...... 81
4.4.6 逆序環視的詭異之處 .................. 81
第5章 匹配模式 ............83
5.1 不區分大小寫模式與模式的指定方式 .. 83
5.2 單行模式 ............... 86
5.3 多行模式 ............... 87
5.4 注釋模式 ............... 89
5.5 補充....................... 91
5.5.1 更多的模式 .................................. 91
5.5.2 修飾符的作用範圍 ...................... 91
5.5.3 失效修飾符 .................................. 92
5.5.4 模式與反向引用 .......................... 93
5.5.5 衝突策略... 93
5.5.6 哪種方式更好 .............................. 94
第6章 其他 ...................95
6.1 轉義....................... 95
6.1.1 字元串轉義與正則轉義 .............. 95
6.1.2 元字元的轉義 .............................. 99
6.1.3 徹底消除元字元的特殊含義 .... 101 6.1.4 字元組中的轉義 ........................ 103
6.2 正則表達式的處理形式 ........................ 103
6.2.1 函式式處理 ................................ 104
6.2.2 面向對象式處理 ........................ 104
6.2.3 比較 ........ 105
6.2.4 執行緒安全性 ................................ 106
6.3 表達式中的優先權 ................................ 108
6.4 回車和換行 ......... 109
第二部分
第7章 Unicode ...........112
7.1 基礎知識 ............. 112
7.2 關於編碼 ............. 115
7.3 儘量使用Unicode編碼 ........................ 116
7.4 Unicode與字元組簡記法 ..................... 120
7.5 規範化問題 ......... 122
7.6 單詞邊界 ............. 123
7.7 碼值轉義序列 ..... 125
7.8 Unicode屬性 ...... 127
7.8.1 Unicode Property ....................... 128
7.8.2 Unicode Block ........................... 128
7.8.3 Unicode Script ........................... 129
7.9 Unicode屬性列表 ................................. 130
7.9.1 Unicode Property ....................... 130
7.9.2 Unicode Block ........................... 131
7.9.3 Unicode Script ........................... 135
7.10 POSIX字元組 .. 135
7.11 Emoji ................. 136
第8章 匹配原理 ..........138
8.1 有窮自動機 ......... 138
8.2 正則表達式的匹配過程 ........................ 139
8.3 回溯..................... 142
8.4 NFA和DFA ....... 144 第9章 常見問題的解決思路 ...........................146
9.1 關於元素的三種邏輯 ............................ 146
9.1.1 必須出現. 147
9.1.2 可能出現. 147
9.1.3 不能出現. 148
9.2 正則表達式的常見操作 ........................ 150
9.2.1 提取 ........ 150
9.2.2 驗證 ........ 156
9.2.3 替換 ........ 160
9.2.4 切分 ........ 165
9.3 正則表達式的最佳化建議 ........................ 167
9.3.1 使用快取. 167
9.3.2 儘量準確地表達意圖 ................ 168
9.3.3 避免重複匹配 ............................ 168
9.3.4 獨立出文本和錨點 .................... 169
9.4 別過分依賴正則表達式 ........................ 170
9.4.1 徹底放棄字元串操作 ................ 170
9.4.2 思維定式. 171
9.4.3 正則表達式可以匹配各種文本 172
9.4.4 濫用正則表達式 ........................ 173
第三部分
第10章 .NET ..............176
10.1 預備知識 ........... 176
10.2 正則功能詳解 ... 177
10.2.1 列表 .... 177
10.2.2 字元組 178
10.2.3 Unicode屬性 ......................... 178
10.2.4 字元組簡記法........................ 179
10.2.5 單詞邊界 ............................... 179
10.2.6 行起始/結束位置 .................. 180
10.2.7 環視 .... 181
10.2.8 匹配模式 ............................... 181
10.2.9 捕獲分組的引用 .................... 182 10.3 正則API簡介 .. 183
10.3.1 Regex .. 183
10.3.2 Match .. 187
10.4 常用操作示例 ... 188
10.4.1 驗證 .... 188
10.4.2 提取 .... 189
10.4.3 替換 .... 189
10.4.4 切分 .... 190
第11章 Java ..............191
11.1 預備知識 ........... 191
11.2 正則功能詳解 ... 192
11.2.1 列表 .... 192
11.2.2 字元組. 192
11.2.3 Unicode屬性 ......................... 194
11.2.4 字元組簡記法 ........................ 194
11.2.5 單詞邊界 ................................ 194
11.2.6 行起始/結束位置 ................... 195
11.2.7 環視 .... 196
11.2.8 匹配模式 ................................ 196
11.2.9 純文本模式 ............................ 197
11.2.10 捕獲分組的引用 .................. 197
11.3 正則API簡介 .. 197
11.3.1 Pattern . 198
11.3.2 Matcher .................................. 200
11.3.3 String ... 203
11.4 常用操作示例 ... 204
11.4.1 驗證 .... 204
11.4.2 提取 .... 204
11.4.3 替換 .... 205
11.4.4 切分 .... 206
11.5 Java 8和Java 9的新改進 ................... 206
11.5.1 Java 8的新改進 ..................... 206
11.5.2 Java 9的新改進 ..................... 207 第12章 JavaScript .....208
12.1 預備知識 ........... 208
12.2 正則功能詳解 ... 209
12.2.1 列表 .... 209
12.2.2 字元組 210
12.2.3 字元組簡記法........................ 211
12.2.4 單詞邊界 ............................... 211
12.2.5 行起始/結束位置 .................. 212
12.2.6 環視 .... 212
12.2.7 匹配模式 ............................... 213
12.2.8 捕獲分組的引用 .................... 214
12.3 正則API簡介 .. 215
12.3.1 RegExp 215
12.3.2 String ... 218
12.4 常用操作示例 ... 221
12.4.1 驗證 .... 221
12.4.2 提取 .... 222
12.4.3 替換 .... 223
12.4.4 切分 .... 223
12.5 關於ActionScript ................................ 223
12.5.1 RegExp 223
12.5.2 匹配規則 ............................... 224
12.5.3 匹配模式 ............................... 224
12.5.4 正則API ................................ 224
第13章 PHP ...............225
13.1 預備知識 ........... 225
13.2 正則功能詳解 ... 227
13.2.1 列表 .... 227
13.2.2 字元組 228
13.2.3 Unicode屬性 ......................... 229
13.2.4 字元組簡記法........................ 229
13.2.5 單詞邊界 ............................... 230
13.2.6 行起始/結束位置 .................. 230
13.2.7 環視 .... 231
13.2.8 匹配模式 ............................... 231 13.2.9 純文本模式 ........................... 232
13.2.10 捕獲分組的引用 .................. 232
13.3 正則API簡介 .. 233
13.3.1 PREG 常量說明 ................... 233
13.3.2 preg_quote ............................. 235
13.3.3 preg_ grep .............................. 235
13.3.4 preg_match ............................. 236
13.3.5 preg_match_all ....................... 237
13.3.6 preg_last_error ....................... 239
13.3.7 preg_replace ........................... 239
13.3.8 preg_replace_callback ............ 240
13.3.9 preg_filter ............................... 240
13.3.10 preg_split ............................. 241
13.3.11 preg_replace_callback_array 242
13.4 常見的正則操作舉例 .......................... 243
13.4.1 驗證 .... 243
13.4.2 提取 .... 243
13.4.3 替換 .... 244
13.4.4 切分 .... 244
第14章 Python ...........245
14.1 預備知識 ........... 245
14.2 正則功能詳解 ... 246
14.2.1 列表 .... 246
14.2.2 字元組 247
14.2.3 Unicode屬性 ......................... 248
14.2.4 字元組簡記法........................ 249
14.2.5 單詞邊界 ............................... 250
14.2.6 行起始/結束位置 .................. 251
14.2.7 環視 .... 252
14.2.8 匹配模式 ............................... 252
14.2.9 捕獲分組的引用 .................... 253
14.2.10 條件匹配 ............................. 253
14.3 正則API簡介 .. 254
14.3.1 RegexObject ........................... 254
14.3.2 re.compile(regex[, flags]) ....... 255 14.3.3 re.search(pattern, string[, flags]) ............................... 256
14.3.4 MatchObject ........................... 256
14.3.5 re.match(pattern, string[, flags]) ................................ 257
14.3.6 re.findall(pattern, string[, flags]) ............................... 258
14.3.7 re.finditer(pattern, string[, flags]) .............................. 258
14.3.8 re.split(pattern, string[, maxsplit=0, flags=0]) .......... 259
14.3.9 re.sub(pattern, repl, string[, count, flags]) ................. 259
14.4 常用操作示例 ... 260
14.4.1 驗證 .... 260
14.4.2 提取 .... 261
14.4.3 替換 .... 262
14.4.4 切分 .... 262
第15章 Ruby ..............263
15.1 預備知識 ........... 263
15.2 正則功能詳解 ... 264
15.2.1 列表 .... 264
15.2.2 字元組 264
15.2.3 Unicode屬性 ......................... 265
15.2.4 字元組簡記法........................ 266
15.2.5 單詞邊界 ............................... 266
15.2.6 行起始/結束位置 .................. 267
15.2.7 環視 .... 268
15.2.8 匹配模式 ............................... 268
15.2.9 捕獲分組的引用 .................... 269
15.3 正則API簡介 .. 269
15.3.1 Regexp 269
15.3.2 Regexp.match(text) ................ 271
15.3.3 Regexp.quote(text)和Regexp.escape(text) ............... 272
15.3.4 String.index(Regexp) ............. 273
15.3.5 String.scan(Regexp) ............... 273
15.3.6 String.slice(Regexp) ............... 274
15.3.7 String.split(Regexp) ............... 274
15.3.8 String.sub(Regexp, Str) .......... 275
15.3.9 String.gsub(Regexp, String) ... 276
15.4 常用操作示例 ... 276 15.4.1 驗證 .... 276
15.4.2 提取 .... 277
15.4.3 替換 .... 277
15.4.4 切分 .... 277
15.5 Ruby 1.9的新變化 .............................. 278
第16章 Objective-C ..280
16.1 預備知識 ........... 280
16.2 正則功能詳解 ... 282
16.2.1 列表 .... 282
16.2.2 字元組 283
16.2.3 Unicode屬性 ......................... 284
16.2.4 字元組簡記法........................ 284
16.2.5 單詞邊界 ............................... 285
16.2.6 行起始/結束位置 .................. 286
16.2.7 環視 .... 287
16.2.8 匹配模式 ............................... 287
16.2.9 純文本模式 ........................... 288
16.2.10 捕獲分組的引用 .................. 289
16.2.11 命名分組 .............................. 290
16.3 正則API簡介 .. 291
16.3.1 predicateWithFormat .............. 291
16.3.2 rangeOfString ......................... 292
16.3.3 regularExpressionWithPattern 292
16.3.4 initWithPattern ....................... 292
16.3.5 pattern . 293
16.3.6 numberOfCaptureGroups ....... 293
16.3.7 numberOfMatchesInString ..... 293
16.3.8 stringByReplacingMatchesInString .......................... 294
16.3.9 replacingMatchesInString ...... 294
16.3.10 escapedPatternForString ...... 294
16.3.11 escapedTemplateForString ... 295
16.4 常用操作示例 ... 295
16.4.1 驗證 .... 295
16.4.2 提取 .... 295 16.4.3 替換 .... 297
16.4.4 切分 .... 298
第17章 Golang...........299
17.1 預備知識 ........... 299
17.2 正則功能詳解 ... 301
17.2.1 列表 .... 301
17.2.2 字元組 301
17.2.3 Unicode屬性 ......................... 302
17.2.4 字元組簡記法........................ 303
17.2.5 單詞邊界 ............................... 303
17.2.6 行起始/結束位置 .................. 303
17.2.7 環視 .... 304
17.2.8 匹配模式 ............................... 304
17.2.9 純文本模式 ........................... 305
17.2.10 捕獲分組的引用 .................. 305
17.2.11 命名分組 .............................. 306
17.3 正則API簡介 .. 307
17.3.1 Compile和MustCompile ...... 307
17.3.2 MatchString ........................... 308
17.3.3 FindString .............................. 308
17.3.4 FindAllString ......................... 309
17.3.5 FindStringIndex ..................... 309
17.3.6 FindAllStringIndex ................ 309
17.3.7 FindStringSubmatch .............. 309
17.3.8 FindAllStringSubmatch ......... 310
17.3.9 SubexpNames ........................ 310
17.3.10 Split ... 311
17.3.11 ReplaceAllString .................. 311
17.3.12 ReplaceAllLiteralString ....... 312
17.4 常用操作示例 ... 312
17.4.1 驗證 .... 312
17.4.2 提取 .... 312
17.4.3 替換 .... 313
17.4.4 切分 .... 313 第18章 Linux/UNIX ....314
18.1 POSIX ............... 314
18.1.1 POSIX規範 ........................... 314
18.1.2 POSIX字元組 ....................... 316
18.2 vi ....................... 317
18.2.1 字元組及簡記法 .................... 317
18.2.2 量詞 .... 318
18.2.3 多選結構和捕獲分組 ............ 319
18.2.4 環視 .... 319
18.2.5 錨點和單詞邊界 .................... 319
18.2.6 替換操作的特殊字元 ............ 320
18.2.7 replacement中的特殊變數 ... 322
18.2.8 補充 .... 322
18.3 grep ................... 323
18.3.1 基本用法 ............................... 323
18.3.2 字元組 324
18.3.3 錨點和單詞邊界 .................... 324
18.3.4 量詞 .... 324
18.3.5 多選結構和捕獲分組 ............ 325
18.3.6 options . 325
18.3.7 egrep和fgrep ........................ 326
18.3.8 補充 .... 327
18.4 awk .................... 327
18.4.1 基本用法 ............................... 327
18.4.2 字元組及簡記法 .................... 328
18.4.3 錨點和單詞邊界 .................... 329
18.4.4 量詞 .... 329
18.4.5 多選結構 ............................... 330
18.4.6 補充 .... 330
18.5 sed ..................... 330
18.5.1 基本用法 ............................... 330
18.5.2 字元組及簡記法 .................... 331
18.5.3 錨點和單詞邊界 .................... 331
18.5.4 量詞 .... 332
18.5.5 多選結構和捕獲分組 ............ 332 18.5.6 options . 333
18.5.7 補充 .... 333
18.6 總結................... 334
附錄A 常用語言中正則特性一覽 ....................337
附錄B 常用的正則表達式 ...............................340
附錄C 常用的正則表達式工具及資源 .............356
正則表達式術語中英文對照表 ...........................363

相關詞條

熱門詞條

聯絡我們