首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 正則表達式語法詳解 (5):邊界匹配完整指南 (\b \B ^ $ \A \Z)

     編輯:Delphi

邊界斷言不匹配字元,只匹配位置,是精準定位的關鍵工具。

完整邊界語法表

語法名稱匹配位置範例
\b單詞邊界\w 與 \W 交界\bDelphi\b 獨立單詞 Delphi
\B非單詞邊界\w\w 或 \W\W 之間\BDelphi\B 嵌入單詞內的 Delphi
^行首 (多行模式下)字串開頭 / 每行開頭^Del 行首的 Del
$行尾 (多行模式下)字串結尾 / 每行結尾phi$ 行尾的 phi
\A字串絕對開頭僅字串最開頭\ADel 不受多行模式影響
\Z字串絕對結尾僅字串最結尾 (含末尾換行前)phi\Z 不受多行模式影響

實戰範例

\b 單詞邊界

reg.Subject := 'Delphi Delphi2007 MyDelphi'; 
reg.RegEx := '\bDelphi\b'; { 前後皆為邊界 }
{ 輸出: ◆ Delphi2007 MyDelphi }

reg.RegEx := '\bDelphi'; { 左邊界 }
{ 輸出: ◆ ◆2007 MyDelphi }

reg.RegEx := 'Delphi\b'; { 右邊界 }
{ 輸出: ◆ Delphi2007 My◆ }

\B 非單詞邊界

reg.Subject := 'Delphi MyDelphi2007 MyDelphi'; 
reg.RegEx := '\BDelphi\B'; { 僅 MyDelphi2007 中的 Delphi 符合 }
{ 輸出: Delphi My◆2007 MyDelphi }

^ $ 行首行尾 (受 preMultiLine 影響)

reg.Subject := 'Delphi Delphi2007 MyDelphi'; 
reg.RegEx := '^Del'; { 單行模式:只匹配字串開頭 }
{ 輸出: ◆phi Delphi2007 MyDelphi }

{ 多行模式下 ^ 匹配每行開頭 }

\A \Z 絕對邊界 (不受 preMultiLine 影響)

reg.RegEx := '\ADel'; { 永遠只匹配字串絕對開頭 }
reg.RegEx := 'phi\Z'; { 永遠只匹配字串絕對結尾 }

關鍵差異總結

  • ^ / $ 受 preMultiLine 影響;\A / \Z 不受影響
  • \Z 匹配字串結尾或末尾換行前;\z (若支援) 僅匹配絕對結尾
  • \b 依賴 \w 定義 (字母數字底線),中文邊界判斷可能不準
  • \B 適合匹配嵌入單詞內的子串 (如變數名中的關鍵字)

靈活組合邊界斷言,能精準控制匹配位置,避免誤匹配。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved