@@ -414,14 +414,14 @@ Java 在 J2SE 1.4 之後開始支援正則表示式,您可以在 API 文件的
414
414
對於一些簡單的字元比對,例如 1 到 9、A-Z 等,您可以使用預先定義的符號來表示,表 6.4 列出幾個常用的字元比對符號。
415
415
416
416
#### ** 表 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 等之外的字元,也就是除數字與字母外都符合 |
425
425
426
426
舉例來說,如果有一字串 "abcdebcadxbc",使用 ".bc" 來作比對的話,符合的子字串有 "abc"、"ebc"、"xbc" 三個;如果使用 "..cd",則符合的子字串只有 "abcd",範例 6.9證實這個說明。
427
427
@@ -457,28 +457,28 @@ public class RegularExpressionDemo {
457
457
您也可以使用「字元類」(Character class)來比較一組字元範圍,表 6.5 示範了幾個字元類的設定方式。
458
458
459
459
#### ** 表 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 |
469
469
470
470
指定一個字元之外,您也可以加上「貪婪量詞」(Greedy quantifiers)來指定字元可能出現的次數,表 6.6 示範了幾個例子。
471
471
472
472
#### ** 表 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 可出現一次或完全沒有 |
482
482
483
483
另外還有 Reluctant quantifiers、Possessive quantifiers 等的指定,您可以自行參考 java.util.regex.Pattern 類別 API 文件中的說明。
484
484
@@ -624,4 +624,4 @@ public class RegularExpressionDemo2 {
624
624
- 瞭解使用 '==' 與 equals() 方法比較兩個字串時的不同點
625
625
- 瞭解 '+' 使用於字串串接上的負擔
626
626
627
- 到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。
627
+ 到目前為止,您僅止於使用物件的階段,接下來就要進入重頭戲了,從下一個章節開始,您將會逐步接觸 Java 中物件導向程式設計的領域,瞭解 Java 中的何種特性可以支援物件導向設計。
0 commit comments