• 欢迎访问我爱CSharp学习网,这里有最新最全的C#书籍,C#视频。
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏我爱C#学习网吧
  • 推荐使用最新版Chrome浏览器和火狐浏览器访问本网站

C#正则表达式Regex类的使用

C#杂烩 52csharp 791次浏览 0个评论 扫描二维码

C#正则表达式Regex类的使用

C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类。这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间所在DLL基本上在所有的项目模板中都不需要单独去添加引用,可以直接使用。

1、定义一个Regex类的实例


Regex regex = new Regex(@”d”);
这里的初始化参数就是一个正则表达式,“d”表示配置数字。

2、判断是否匹配

判断一个字符串,是否匹配一个正则表达式,在Regex对象中,可以使用Regex.IsMatch(string)方法。

regex.IsMatch(“abc”); //返回值为false,字符串中未包含数字
regex.IsMatch(“abc3abc”); //返回值为true,因为字符串中包含了数字

3、获取匹配次数

使用Regex.Matches(string)方法得到一个Matches集合,再使用这个集合的Count属性。

regex.Matches(“abc123abc”).Count; 
返回值为3,因为匹配了三次数字。

4、获取匹配的内容

使用Regex.Match(string)方法进行匹配。

regex.Match(“abc123abc”).Value;
返回值为1,表示第一个匹配到的值。

5、捕获

正则表达式中可以使用括号对部分值进行捕获,要想获取捕获的值,可以使用Regex.Match(string).Groups[int].Value来获取。

Regex regex = new Regex(@”w(d*)w”); //匹配两个字母间的数字串
regex.Match(“abc123abc”).Groups[0].Value; //返回值为“123”。

 

C#正则表达式Regex类的使用

using System;  
using System.Text.RegularExpressions;  
namespace Magci.Test.Strings  
{      
   public class TestRegular      
   {          
       public static void WriteMatches(string str, MatchCollection matches)          
       {              
           Console.WriteLine("nString is : " + str);              
           Console.WriteLine("No. of matches : " + matches.Count);              
           foreach (Match nextMatch in matches)              
           {                  
               //取出匹配字符串和最多10个外围字符                  
               int Index = nextMatch.Index;                  
               string result = nextMatch.ToString();                  
               int charsBefore = (Index < 5) ? Index : 5;                  
               int fromEnd = str.Length - Index - result.Length;                  
               int charsAfter = (fromEnd < 5) ? fromEnd : 5;                  
               int charsToDisplay = charsBefore + result.Length + charsAfter;                  
               Console.WriteLine("Index: {0},tString: {1},t{2}", Index, result, str.Substring(Index - charsBefore, charsToDisplay));            
           }          
       }          
       
       public static void Main()          
       {              
           string Str = @"My name is Magci, for short mgc. I like c sharp!";              
           //查找“gc”              
           string Pattern = "gc";              
           MatchCollection Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);              
           WriteMatches(Str, Matches);                            
           //查找以“m”开头,“c”结尾的单词              
           Pattern = @"bmS*cb";              
           Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);              
           WriteMatches(Str, Matches);          
       }      
   }  
}

C#正则表达式Regex类的使用



C#正则表达式Regex类的使用



我爱CSharp学习网 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#正则表达式Regex类的使用
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址