🌟 C# 常用正則表達式與用法
C# 使用正則需要引用命名空間:
using System.Text.RegularExpressions;
常用方法:
Regex.IsMatch(input, pattern)
→ 返回bool
,用于驗證Regex.Match(input, pattern)
→ 返回Match
對象,可獲取捕獲內容Regex.Matches(input, pattern)
→ 返回MatchCollection
,獲取所有匹配Regex.Replace(input, pattern, replacement)
→ 替換字符串
1. 驗證類示例
// 手機號驗證 bool isPhone = Regex.IsMatch("13812345678", @"^1[3-9]\d{9}$"); // 郵箱驗證 bool isEmail = Regex.IsMatch("txj@example.com", @"^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$"); // 身份證驗證 bool isID = Regex.IsMatch("110105199001011234", @"^\d{17}[\dXx]$"); // IP 地址驗證 bool isIP = Regex.IsMatch("192.168.0.1", @"^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}$"); // 強密碼驗證(8-20位,字母+數字) bool isStrongPwd = Regex.IsMatch("Txj123456", @"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$");
2. 提取類示例
// 提取數字 string text = "訂單號123456"; MatchCollection nums = Regex.Matches(text, @"\d+"); foreach (Match m in nums) Console.WriteLine(m.Value); // 輸出 123456 // 提取郵箱用戶名 string email = "txj@example.com"; Match userMatch = Regex.Match(email, @"^([\w.-]+)@"); if(userMatch.Success) Console.WriteLine(userMatch.Groups[1].Value); // 輸出 txj // 提取 URL 域名 string url = "https://www.txj.com/path"; Match urlMatch = Regex.Match(url, @"https?://([\w.-]+)"); if(urlMatch.Success) Console.WriteLine(urlMatch.Groups[1].Value); // 輸出 www.txj.com
3. 替換類示例
// 去掉首尾空格 string str = " hello world "; string clean = Regex.Replace(str, @"^\s+|\s+$", ""); Console.WriteLine(clean); // hello world // 替換 HTML 標簽 string html = "<p>hello</p>"; string plain = Regex.Replace(html, @"<[^>]+>", ""); Console.WriteLine(plain); // hello
4. 常用正則大全(C# 版)
用途 | 正則表達式 | 說明 |
---|---|---|
手機號 | ^1[3-9]\d{9}$ | 中國大陸手機號 |
郵箱 | ^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$ | 郵箱格式 |
身份證 | ^\d{17}[\dXx]$ | 18位身份證 |
IP 地址 | `^(25[0-5] | 2[0-4]\d |
URL 域名 | https?://([\w.-]+) | 提取主機名 |
日期 | ^\d{4}-\d{2}-\d{2}$ | YYYY-MM-DD |
數字 | \d+ | 提取數字 |
銀行卡號 | ^\d{16,19}$ | 16~19位數字 |
強密碼 | ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$ | 字母+數字組合 |
中文字符 | ^[\u4e00-\u9fa5]+$ | 全中文 |
HTML 標簽 | <([a-z]+)[^>]*>(.*?)</\1> | 捕獲標簽內容 |
時間 HH:MM:SS | `^([01]\d | 2[0-3]):[0-5]\d:[0-5]\d$` |
十六進制顏色 | `^#?([a-fA-F0-9]{6} | [a-fA-F0-9]{3})$` |