diff --git a/docs/CH06.md b/docs/CH06.md index 301a36f..8633b18 100644 --- a/docs/CH06.md +++ b/docs/CH06.md @@ -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證實這個說明。 @@ -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 文件中的說明。 @@ -624,4 +624,4 @@ public class RegularExpressionDemo2 { - 瞭解使用 '==' 與 equals() 方法比較兩個字串時的不同點 - 瞭解 '+' 使用於字串串接上的負擔 -到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。 \ No newline at end of file +到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。