@@ -414,14 +414,14 @@ Java 在 J2SE 1.4 之後開始支援正則表示式,您可以在 API 文件的
414414對於一些簡單的字元比對,例如 1 到 9、A-Z 等,您可以使用預先定義的符號來表示,表 6.4 列出幾個常用的字元比對符號。
415415
416416#### ** 表 6.4 字元比對符號**
417- | 方法 | 說明
418- |:-- |:-
419- | . | 符合任一字元
420- | \d | 符合 0 到 9 任一個數字字元
421- | \D | 符合 0-9 以外的字元
422- | \s | 符合 '\t'、'\n'、'\x0B'、'\f'、'\r' 等空白字元
423- | \w | 符合 a 到 z、A 到 Z、0 到 9 等字元,也就是數字或是字母都符合
424- | \W | 符合 a 到 z、A 到 Z、0 到 9 等之外的字元,也就是除數字與字母外都符合
417+ | 方法 | 說明 |
418+ | :----- | :-- |
419+ | . | 符合任一字元 |
420+ | \d | 符合 0 到 9 任一個數字字元 |
421+ | \D | 符合 0-9 以外的字元 |
422+ | \s | 符合 '\t'、'\n'、'\x0B'、'\f'、'\r' 等空白字元 |
423+ | \w | 符合 a 到 z、A 到 Z、0 到 9 等字元,也就是數字或是字母都符合 |
424+ | \W | 符合 a 到 z、A 到 Z、0 到 9 等之外的字元,也就是除數字與字母外都符合 |
425425
426426舉例來說,如果有一字串 "abcdebcadxbc",使用 ".bc" 來作比對的話,符合的子字串有 "abc"、"ebc"、"xbc" 三個;如果使用 "..cd",則符合的子字串只有 "abcd",範例 6.9證實這個說明。
427427
@@ -457,28 +457,28 @@ public class RegularExpressionDemo {
457457您也可以使用「字元類」(Character class)來比較一組字元範圍,表 6.5 示範了幾個字元類的設定方式。
458458
459459#### ** 表 6.5 字元類範例**
460- | 範例 | 作用
461- |:- |:-
462- | [ abc] | 符合 a、b 或 c
463- | [ ^ abc ] | 符合「a 或 b 或 c」之外的字元
464- | [ a-zA-Z] | 符合 a 到 z 或者是 A 到 Z 的字元
465- | [ a-d[ m-p]] | a 到 d 或者是m 到 p,也可以寫成 [ a-dm-p]
466- | [ a-z&&[ def]] | a 到 z 並且是 d 或 e 或 f,結果就是 d 或 e 或 f 可以符合
467- | [ a-z&&[ ^ bc ] ] | a 到 z 並且不是 b 或 c
468- | [ a-z&&[ ^ m-p ] ] | a 到 z 並且不是 m 到 p
460+ | 範例 | 作用 |
461+ | :-------------- | :-- |
462+ | [ abc] | 符合 a、b 或 c |
463+ | [ ^ abc ] | 符合「a 或 b 或 c」之外的字元 |
464+ | [ a-zA-Z] | 符合 a 到 z 或者是 A 到 Z 的字元 |
465+ | [ a-d[ m-p]] | a 到 d 或者是m 到 p,也可以寫成 [ a-dm-p] |
466+ | [ a-z&&[ def]] | a 到 z 並且是 d 或 e 或 f,結果就是 d 或 e 或 f 可以符合 |
467+ | [ a-z&&[ ^ bc ] ] | a 到 z 並且不是 b 或 c |
468+ | [ a-z&&[ ^ m-p ] ] | a 到 z 並且不是 m 到 p |
469469
470470指定一個字元之外,您也可以加上「貪婪量詞」(Greedy quantifiers)來指定字元可能出現的次數,表 6.6 示範了幾個例子。
471471
472472#### ** 表 6.6 貪婪量詞範例**
473- | 範例 | 作用
474- |:- |:-
475- | X? | X 可出現一次或完全沒有
476- | X* | X 可出現零次或多次
477- | X+ | X 可出現一次或多次
478- | X{n} | X 可出現 n 次
479- | X{n,} | X 可出現至少n次
480- | X{n, m} | X 可出現至少 n 次,但不超過 m 次
481- | X? | X 可出現一次或完全沒有
473+ | 範例 | 作用 |
474+ | :--------- | :-- |
475+ | X? | X 可出現一次或完全沒有 |
476+ | X* | X 可出現零次或多次 |
477+ | X+ | X 可出現一次或多次 |
478+ | X{n} | X 可出現 n 次 |
479+ | X{n,} | X 可出現至少n次 |
480+ | X{n, m} | X 可出現至少 n 次,但不超過 m 次 |
481+ | X? | X 可出現一次或完全沒有 |
482482
483483另外還有 Reluctant quantifiers、Possessive quantifiers 等的指定,您可以自行參考 java.util.regex.Pattern 類別 API 文件中的說明。
484484
@@ -624,4 +624,4 @@ public class RegularExpressionDemo2 {
624624- 瞭解使用 '==' 與 equals() 方法比較兩個字串時的不同點
625625- 瞭解 '+' 使用於字串串接上的負擔
626626
627- 到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。
627+ 到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。
0 commit comments