C#正则表达式的使用

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

大家好,欢迎来到IT知识分享网。

前言

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

工作方式

使用正则表达式处理文本的核心是正则表达式引擎,.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}#34;); if (matchResult) { Console.WriteLine(string.Format("{0}是IP地址",ip)); } #endregion #region 匹配字符串中是否包含指定字符 string content = "RTSF-1"; 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}#34;); 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 = ""; // 脱敏后 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("手机号[]联系").Value; #endregion

常用正则模式

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

1、校验数字

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

2、校验字符

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

3、常见模式

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

小结

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/80320.html

(0)
上一篇 2024-08-20 19:26
下一篇 2024-08-27 21:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信