欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > C#正则表达式的使用

C#正则表达式的使用

2025/5/26 2:25:04 来源:https://blog.csdn.net/Funniyuan/article/details/140079222  浏览:    关键词:C#正则表达式的使用

前言

正则表达式是一种用于分析、匹配和处理字符串的特定模式。其丰富的泛模式匹配表示法,可用于查找特定字符、提取、编辑、替换或删除、验证文本等操作。

工作方式

使用正则表达式处理文本的核心是正则表达式引擎,.NET 是由 Regex 类来表示。在使用正则表达式时,需要向正则表达式引擎提供正则表达式模式分析的文本

Regex 类

Regex 类常用方法
方法描述
IsMatch指示正则表达式在输入字符串中是否找到匹配项。
Matche检索匹配正则表达式模式的一个文本匹配项。
Matches检索匹配正则表达式模式的所有文本匹配项。
Replace替换匹配正则表达式模式的文本。
Split指定的正则表达式模式定义的位置进行分割字符串。
Regex 类应用示例

1、字符串匹配,实现验证文本操作

#region 匹配字符串是否为IP地址
string ip="127.0.0.1";
bool matchResult = Regex.IsMatch(ip, @"^\d{1,3}(\.\d{1,3}){3}$");
if (matchResult)
{Console.WriteLine(string.Format("{0}是IP地址",ip));
}
#endregion#region 匹配字符串中是否包含指定字符
string content = "RTSF-202404050001";
Regex regex = new Regex("rtsf",RegexOptions.IgnoreCase);
if (regex.IsMatch(content))
{Console.WriteLine("字符串中包含:RTSF!");
}
#endregion#region 匹配日期合法性
string dateTime = "2024-04-06";
bool matchDateResult = Regex.IsMatch(dateTime, @"^\d{4}\-\d{1,2}\-\d{1,2}$");
if (matchDateResult) 
{Console.WriteLine(string.Format("{0}是日期", dateTime));
}
#endregion

2、字符串替换

#region 替换实现手机号码脱敏
//对手机号码脱敏
string pattern = @"(\d{3})\d{4}(\d{4})";
// 替换后的格式
string replacement = "$1****$2";
// 手机号
string phoneNumber = "13600000001";
// 脱敏后
string maskPhoneNumber=Regex.Replace(phoneNumber, pattern, replacement);
Console.WriteLine(string.Format("手机号码是:{0}", dateTime));
#endregion #region 简单的字符替换
string content = "136*0000*0001";
// 实例方法
Regex regex = new Regex("*", RegexOptions.IgnoreCase);
// 替换
string  replaceResult = regex.Replace(content,"-");
Console.WriteLine(string.Format("原字符{0},替换后{1}", content,replaceResult));
#endregion 

3、字符串拆分

#region 按数字将字符串拆分
string pattern = @"\d+";
Regex regex = new Regex(pattern);
string content = "13Regex46Pattern79Result01";
string[] result = regex.Split(input);
#endregion

4、字符串提取

#region 提取字符字符串中[]范围的的字符
string pattern = @"(?is)(?<=\[)(.*)(?=\])";
Regex regex = new Regex(pattern);
string result = regex.Match("手机号[1360000001]联系").Value;
#endregion

常用正则模式

正则表达式模式是由一系列字符和特殊字符组成,用于描述要匹配的文本模式。设计正则表达式的模式也是使用正则难点,下面给出一常用的模式。

1、校验数字

// 匹配0-9数字
Regex regex = new Regex(@"^[0-9]*$");
// 匹配出现过n次的数字,使用时指定如4
Regex regex = new Regex(@"^\d{n}$");
// 匹配非零的正整数 
Regex regex = new Regex(@"^[1-9]\d*$");                     
// 1或2位小数的正数或负数
Regex regex = new Regex(@"^(\-)?\d+(\.\d{1,2})?$");
// 可以为正数、负数或小数
Regex regex = new Regex(@"^(\-|\+)?\d+(\.\d+)?$");

2、校验字符

//汉字
Regex regex = new Regex(@"^[\u4e00-\u9fa5]{0,}$");
//英文和数字
Regex regex = new Regex(@"^[A-Za-z0-9]+$");
//长度为n,m的所有字符,如3,20
Regex regex = new Regex(@"^.{3,20}$");
//由26个英文字母组成的字符串
Regex regex = new Regex(@"^[A-Za-z]+$");
//由26个大写英文字母组成的字符串
Regex regex = new Regex(@"^[A-Z]+$");
//由26个小写英文字母组成的字符串
Regex regex = new Regex(@"^[a-z]+$");
//由数字和26个英文字母组成的字符串
Regex regex = new Regex(@"^[A-Za-z0-9]+$");
//中文、英文、数字包括下划线
Regex regex = new Regex(@"^[\u4E00-\u9FA5A-Za-z0-9_]+$");

3、常见模式

// 验证电话号码
Regex regex = new Regex(@"^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$");
// 验证身份证号
Regex regex = new Regex(@"^\d{15}|\d{18}$");
// 中国邮政编码
Regex regex = new Regex(@"[1-9]\d{5}(?!\d)");
// IP地址
Regex regex = new Regex(@"\d+\.\d+\.\d+\.\d+");

小结

正则表达式是一种非常方便和强大的语法,可以用于搜索、匹配和替换字符串。本文介绍希望能对大家有所帮助。后续将对正则表达式模式构成,掌握如设计自己需要的正则表达式的模式。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词