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

C# 正則表達式入門基礎:字元比對、字元類別、選擇與分組

     編輯:關於C#

正則表達式基礎元素

正則表達式為字串模式描述語言,由字面字元、中繼字元、量詞、定位符、群組構成。C# 透過 System.Text.RegularExpressions.Regex 類別提供完整支援。

字元比對基礎

模式說明範例比對
abc字面字元序列"abc", "zabcx"
.任意單一字元 (除 \n)"a", "1", "中"
\d數字 [0-9]"5"
\w單字字元 [a-zA-Z0-9_]"A", "9", "_"
\s空白字元 (空格、Tab、換行)" ", "\t"
\D \W \S對應反向類別-

字元類別與選擇

[aeiou]          // 單一母音
[^aeiou]          // 非母音 (排除類別)
[a-z]             // 範圍:小寫字母
[a-zA-Z0-9]       // 英數字
[\\d\\w]          // 類別中可用簡寫 (等同 [\d\w])
(a|b|c)           // 選擇:a 或 b 或 c
(?:cat|dog)       // 非捕獲選擇

分組與捕獲

  • (...) 捕獲群組,自動編號 $1, $2... / \1, \2...
  • (?<name>...) 命名群組,${name} / \k<name> 參考
  • (?:...) 非捕獲群組,僅分組不佔編號

C# 基本操作 API

// 靜態方法
bool isMatch = Regex.IsMatch(input, pattern);
Match match = Regex.Match(input, pattern);
MatchCollection matches = Regex.Matches(input, pattern);
string replaced = Regex.Replace(input, pattern, replacement);

// 實例模式 (重複使用編譯後表達式)
var regex = new Regex(pattern, RegexOptions.Compiled);
foreach (Match m in regex.Matches(input)) {
    Console.WriteLine(m.Value);
    foreach (Group g in m.Groups) {
        Console.WriteLine($"  Group[{g.Name}] = {g.Value}");
    }
}

進階構造預覽

  • 先行斷言:(?=...) (?!...)
  • 後行斷言:(?<=...) (?<!...)
  • 條件比對:(?(condition)yes|no)
  • 平衡群組:(?<NAME>...) (?<-NAME>...) 處理巢狀結構

基礎語法表
字元類別
分組捕獲
API範例1
API範例2
API範例3

本文對應《叩響 C# 之門》第 20 章 正則表達式入門教學內容

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