Skip to content

Update CH06.md #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 28, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 27 additions & 27 deletions docs/CH06.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,14 +414,14 @@ Java 在 J2SE 1.4 之後開始支援正則表示式,您可以在 API 文件的
對於一些簡單的字元比對,例如 1 到 9、A-Z 等,您可以使用預先定義的符號來表示,表 6.4 列出幾個常用的字元比對符號。

#### **表 6.4 字元比對符號**
| 方法 | 說明
|:-- |:-
| . | 符合任一字元
| \d | 符合 0 到 9 任一個數字字元
| \D | 符合 0-9 以外的字元
| \s | 符合 '\t'、'\n'、'\x0B'、'\f'、'\r' 等空白字元
| \w | 符合 a 到 z、A 到 Z、0 到 9 等字元,也就是數字或是字母都符合
| \W | 符合 a 到 z、A 到 Z、0 到 9 等之外的字元,也就是除數字與字母外都符合
| 方法 | 說明 |
|:----- |:-- |
| . | 符合任一字元 |
| \d | 符合 0 到 9 任一個數字字元 |
| \D | 符合 0-9 以外的字元 |
| \s | 符合 '\t'、'\n'、'\x0B'、'\f'、'\r' 等空白字元 |
| \w | 符合 a 到 z、A 到 Z、0 到 9 等字元,也就是數字或是字母都符合 |
| \W | 符合 a 到 z、A 到 Z、0 到 9 等之外的字元,也就是除數字與字母外都符合 |

舉例來說,如果有一字串 "abcdebcadxbc",使用 ".bc" 來作比對的話,符合的子字串有 "abc"、"ebc"、"xbc" 三個;如果使用 "..cd",則符合的子字串只有 "abcd",範例 6.9證實這個說明。

Expand Down Expand Up @@ -457,28 +457,28 @@ public class RegularExpressionDemo {
您也可以使用「字元類」(Character class)來比較一組字元範圍,表 6.5 示範了幾個字元類的設定方式。

#### **表 6.5 字元類範例**
| 範例 | 作用
|:- |:-
| [abc] | 符合 a、b 或 c
| [^abc] | 符合「a 或 b 或 c」之外的字元
| [a-zA-Z] | 符合 a 到 z 或者是 A 到 Z 的字元
| [a-d[m-p]] | a 到 d 或者是m 到 p,也可以寫成 [a-dm-p]
| [a-z&&[def]] | a 到 z 並且是 d 或 e 或 f,結果就是 d 或 e 或 f 可以符合
| [a-z&&[^bc]] | a 到 z 並且不是 b 或 c
| [a-z&&[^m-p]] | a 到 z 並且不是 m 到 p
| 範例 | 作用 |
|:--------------|:--|
| [abc] | 符合 a、b 或 c |
| [^abc] | 符合「a 或 b 或 c」之外的字元 |
| [a-zA-Z] | 符合 a 到 z 或者是 A 到 Z 的字元 |
| [a-d[m-p]] | a 到 d 或者是m 到 p,也可以寫成 [a-dm-p] |
| [a-z&&[def]] | a 到 z 並且是 d 或 e 或 f,結果就是 d 或 e 或 f 可以符合 |
| [a-z&&[^bc]] | a 到 z 並且不是 b 或 c |
| [a-z&&[^m-p]] | a 到 z 並且不是 m 到 p |

指定一個字元之外,您也可以加上「貪婪量詞」(Greedy quantifiers)來指定字元可能出現的次數,表 6.6 示範了幾個例子。

#### **表 6.6 貪婪量詞範例**
| 範例 | 作用
|:- |:-
| X? | X 可出現一次或完全沒有
| X* | X 可出現零次或多次
| X+ | X 可出現一次或多次
| X{n} | X 可出現 n 次
| X{n,} | X 可出現至少n次
| X{n, m} | X 可出現至少 n 次,但不超過 m 次
| X? | X 可出現一次或完全沒有
| 範例 | 作用 |
|:--------- |:-- |
| X? | X 可出現一次或完全沒有 |
| X* | X 可出現零次或多次 |
| X+ | X 可出現一次或多次 |
| X{n} | X 可出現 n 次 |
| X{n,} | X 可出現至少n次 |
| X{n, m} | X 可出現至少 n 次,但不超過 m 次 |
| X? | X 可出現一次或完全沒有 |

另外還有 Reluctant quantifiers、Possessive quantifiers 等的指定,您可以自行參考 java.util.regex.Pattern 類別 API 文件中的說明。

Expand Down Expand Up @@ -624,4 +624,4 @@ public class RegularExpressionDemo2 {
- 瞭解使用 '==' 與 equals() 方法比較兩個字串時的不同點
- 瞭解 '+' 使用於字串串接上的負擔

到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。
到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。