首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 正則表達式定位符完整指南:^ $ \b \A \Z \G 實戰應用

     編輯:關於C#

定位符核心概念

定位符 (Anchors) 不消耗字元,僅判斷位置滿足條件。掌握定位符是撰寫精準正則的關鍵。

常用定位符對照表

符號名稱比對位置多行模式影響
^行首字串開頭 / 每行開頭 (Multiline)Multiline 時比對每行開頭
$行尾字串結尾 / 每行結尾 (Multiline)Multiline 時比對每行結尾
\A字串開頭僅字串絕對開頭不受 Multiline 影響
\Z字串結尾字串絕對結尾 (或末尾 \n 前)不受 Multiline 影響
\z絕對結尾僅字串最末端不受 Multiline 影響
\b字邊界\w 與 \W 交接處-
\B非字邊界\w 與 \w 或 \W 與 \W 間-
\G上次比對結尾連續比對起始位置-

實戰範例

// 驗證整行輸入為 Email
^[\w.+-]+@[\w-]+\.[\w.-]+$

// 多行模式下提取每行開頭的數字
Regex.Matches(text, @"^\d+", RegexOptions.Multiline)

// 單字完整比對 (避免部分比對)
\bcat\b  // 比對 "cat" 不比對 "category"

// 連續比對所有單字
string input = "one two three";
foreach (Match m in Regex.Matches(input, @"\w+")) {
    Console.WriteLine(m.Value); // one, two, three
}
// 使用 \G 從上次結尾繼續 (搭配 Regex.Match.NextMatch)

常見陷阱

  • ^$ 未加 RegexOptions.Multiline 時僅比對整字串首尾
  • \Z 允許末尾換行,嚴格驗證請用 \z
  • \b 視 Unicode 類別判定,中文/日文邊界行為與英文不同

定位符示意1
定位符示意2
定位符示意3

本文對應《叩響 C# 之門》第 20.6 節教學內容

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