| (或) 與量詞 + * ? {n,m} 是構建複雜匹配模式的兩大基石。
reg.Subject := 'CodeGear Delphi 2007';
reg.RegEx := 'e|Delphi|0'; { 匹配 e 或 Delphi 或 0 }
reg.Replacement := '◆';
reg.ReplaceAll;
{ 輸出: Cod◆G◆ar ◆ 2◆◆7 }
reg.Subject := 'a aa aaa aaaa ab abb abbba a呀a';
reg.RegEx := 'ab+'; { a 後接 1+ 個 b }
{ 輸出: a aa aaa aaaa ◆ ◆ ◆a a呀a }
reg.RegEx := 'ab*'; { a 後接 0+ 個 b }
{ 輸出: ◆ ◆◆ ◆◆◆ ◆◆◆◆ ◆ ◆ ◆ ◆ ◆呀◆ }
reg.RegEx := 'a?'; { 可選 a }
{ 輸出: ◆ ◆◆ ◆◆◆ ◆◆◆◆ ◆b ◆bb ◆bbb◆ ◆呀◆ }
reg.RegEx := 'a{3}'; { 連續 3 個 a }
{ 輸出: a aa ◆ ◆a ab abb abbba a呀 a }
reg.RegEx := 'a{2,4}'; { 2-4 個 a }
{ 輸出: a ◆ ◆ ◆ ab abb abbba a呀a }
reg.RegEx := 'a{1,}'; { 1+ 個 a,等同 a+ }
{ 輸出: ◆ ◆ ◆ ◆ ◆b ◆bb ◆bbb◆ ◆呀◆ }
| 簡寫 | 大括號完整寫法 | 含義 |
|---|---|---|
? | {0,1} | 0 或 1 |
+ | {1,} | 1 或多 |
* | {0,} | 0 或多 |
ab* = a(b*),非 (ab)*(ab)* 匹配 ababab...| 優先級最低:a|bc = a|(bc)所有量詞預設貪婪,加 ? 變非貪婪:*? +? ?? {n,m}?。詳見第 6 篇。
掌握 | 與量詞的優先級、分組、等價關係,能精確構建任意重複與選擇邏輯。