📅  最后修改于: 2023-12-03 15:13:53.696000             🧑  作者: Mango
正则表达式是用来匹配文本、搜索字符串、验证输入合法性等的强大工具。在 C# 中,我们可以使用 System.Text.RegularExpressions 命名空间下的类来实现正则表达式。本文主要介绍 C# 中可以使用的特殊字符正则表达式。
以下是常用的特殊字符:
| 字符 | 描述 | | --- | --- | | . | 匹配除换行符以外的任意字符 | | \d | 匹配数字字符 | | \D | 匹配非数字字符 | | \s | 匹配空白字符,包括空格、制表符、换行符等 | | \S | 匹配非空白字符 | | \w | 匹配字母、数字、下划线 | | \W | 匹配非字母、数字、下划线 |
以下是表示控制字符的特殊字符:
| 字符 | 描述 | | --- | --- | | \a | 匹配响铃符(\u0007) | | \b | 匹配单词边界 | | \f | 匹配换页符(\u000C) | | \n | 匹配换行符(\u000A) | | \r | 匹配回车符(\u000D) | | \t | 匹配制表符(\u0009) | | \v | 匹配垂直制表符(\u000B) |
以下是其它一些特殊字符:
| 字符 | 描述 | | --- | --- | | ^ | 匹配行的开头 | | $ | 匹配行的结尾 | | * | 匹配前面的表达式零次或多次 | | + | 匹配前面的表达式一次或多次 | | ? | 匹配前面的表达式零次或一次 | | {n} | 匹配前面的表达式恰好 n 次 | | {n,} | 匹配前面的表达式至少 n 次 | | {n,m} | 匹配前面的表达式至少 n 次,但不超过 m 次 | | () | 捕获匹配的子表达式 | | [] | 匹配方括号内的任意一个字符 | | [^] | 匹配不在方括号内的任意一个字符 |
以下是一些常见用法的实例:
// 匹配 Email 地址
string pattern = @"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b";
string input = "email@example.com";
bool result = Regex.IsMatch(input, pattern);
// 匹配日期
pattern = @"(0[1-9]|1[0-2])/([012][0-9]|3[01])/(([0-9]{4})|([0-9]{2}))";
input = "01/01/2022";
result = Regex.IsMatch(input, pattern);
// 替换字符串中的空格
pattern = @"\s+";
input = "this is a test";
string replace = "-";
string output = Regex.Replace(input, pattern, replace);
C# 中的正则表达式可以使用特殊字符来进行匹配和搜索,包括常用的特殊字符、控制字符和其它特殊字符等。在实际开发中,我们可以根据不同的需求选用不同的特殊字符来实现匹配和替换等操作。