正規表示式 (Regular Expression, Regex),可以用來查詢與取代符合格式的字串,許多的編輯器和程式語法都支援,C# 內常用的用法如下。
常用語法
以下的程式需要引用 using System.Text.RegularExpressions;
命名空間。
Regex.IsMatch
方法可以檢查字串內是否有符合表示式的子字串,回傳為 bool。
Regex.IsMatch("100號", "[0-9]+號"); // true
Regex.IsMatch("信義路100號", "[0-9]+號"); // true
Regex.IsMatch("信義路號", "[0-9]+號"); // false
Regex.Match
方法則可以取得匹配的結果,其回傳類別是 System.Text.RegularExpressions.Match
,使用命名空間後也是 Match
。
Match
類別的 Index
屬性,可以取得字串中匹配的位置。
Regex.Matches(text, pattern).Count
則可以計算符合表示式的子字串出現次數,例如以下程式碼可以計算出現了幾個中文字:
Regex.Matches("中文字123", "[\u4e00-\u9fff]").Count // Count = 3
參考資料
- 維基百科:正規表示式 - 維基百科,自由的百科全書
- 官方說明:.NET 規則運算式 - .NET - Microsoft Learn
- 使用 Match 找到匹配的位置:c# - Is there a function that returns index where RegEx match starts? - Stack Overflow
- 測試 Regex 的網站:RegExr: Learn, Build, & Test RegEx,可以一次測試多組資料。