C# 正则表达式学习笔记

正则表达式是一种用来匹配文本模式的语法。在C#中,可以使用正则表达式来进行字符串操作,如查找、替换、提取特定格式信息等等。本文将介绍正则表达式的基本语法和常见应用场景,并举例说明。

基本语法

匹配单个字符

字符 含义
. 匹配任意单个字符
\d 匹配任意数字
\w 匹配任意字母或数字或下划线
\s 匹配任意空白字符,包括空格、制表符、换行符等
[abc] 匹配a、b、c中的任意一个字符
[^abc] 匹配除了a、b、c以外的任意一个字符

匹配位置

字符 含义
^ 匹配行首
$ 匹配行尾
\b 匹配单词边界
\B 匹配非单词边界

重复匹配

字符 含义
* 匹配前面的字符0次或多次
+ 匹配前面的字符1次或多次
? 匹配前面的字符0次或1次
{m,n} 匹配前面的字符m次到n次

分组和引用

字符 含义
() 将括号内的表达式作为一个分组
\1,\2,... 引用第1、2、...个分组中匹配到的内容

常见应用场景

邮箱验证

csharpCopy Code
string email = "example@example.com"; string pattern = @"^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)$"; bool isMatch = Regex.IsMatch(email, pattern);

该正则表达式可以匹配大部分邮箱格式,包括常见的@符号和点符号。

身份证号码校验

csharpCopy Code
string idCard = "110101199003076192"; string pattern = @"^\d{17}(\d|X)$"; bool isMatch = Regex.IsMatch(idCard, pattern);

该正则表达式可以匹配中国大陆身份证号码格式,其中末位可以是数字或大写字母X。

URL提取

csharpCopy Code
string html = "<a href='https://www.example.com'>Example</a>"; string pattern = @"href\s*=\s*['""]([^'""]+)['""]"; Match match = Regex.Match(html, pattern); if (match.Success) { string url = match.Groups[1].Value; }

该正则表达式可以从HTML中提取出URL链接地址。

结语

本文介绍了C#正则表达式的基本语法和常见应用场景,并举例说明。掌握正则表达式可以提高字符串操作的效率和精度,是C#编程中重要的技能之一。