C#中使用正则表达式匹配字符串

C#中使用正则表达式匹配字符串的方法如下:
1.使用System.Text.RegularExpressions命名空间;
2.使用Matches()方法匹配字符串,格式如下:
MatchCollection Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
其中Str表示输入字符串,Pattern表示匹配模式,RegexOptions.IgnoreCase表示忽略大小写,RegexOptions.ExplicitCapture表示改变收集匹配方式。
3.匹配结果保存在MatchCollection集合中,可以通过循环遍历结果集取出Match对象的结果。

TestRagular.cs:
 
01.using System; 
02.using System.Text.RegularExpressions; 
03.  
04.namespace Magci.Test.Strings 
05.{ 
06.    public class TestRegular 
07.    { 
08.        public static void WriteMatches(string str, MatchCollection matches) 
09.        { 
10.            Console.WriteLine("\nString is : " + str); 
11.            Console.WriteLine("No. of matches : " + matches.Count); 
12.            foreach (Match nextMatch in matches) 
13.            { 
14.                //取出匹配字符串和最多10个外围字符 
15.                int Index = nextMatch.Index; 
16.                string result = nextMatch.ToString(); 
17.                int charsBefore = (Index < 5) ? Index : 5; 
18.                int fromEnd = str.Length - Index - result.Length; 
19.                int charsAfter = (fromEnd < 5) ? fromEnd : 5; 
20.                int charsToDisplay = charsBefore + result.Length + charsAfter; 
21.  
22.                Console.WriteLine("Index: {0},\tString: {1},\t{2}", Index, result, str.Substring(Index - charsBefore, charsToDisplay)); 
23.            } 
24.        } 
25.  
26.        public static void Main() 
27.        { 
28.            string Str = @"My name is Magci, for short mgc. I like c sharp!"; 
29.  
30.            //查找“gc” 
31.            string Pattern = "gc"; 
32.            MatchCollection Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); 
33.  
34.            WriteMatches(Str, Matches); 
35.              
36.            //查找以“m”开头,“c”结尾的单词 
37.            Pattern = @"\bm\S*c\b"; 
38.            Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); 
39.  
40.            WriteMatches(Str, Matches); 
41.        } 
42.    } 

43.}





     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360721,如需转载请自行联系原作者


上一篇:英特尔Atom C2000芯片故障导致产品变砖头——受影响的不仅仅是思科


下一篇:ps -ef查询进程排除grep自身影响