C#Regex匹配相關字串__Regex
來源:互聯網
上載者:User
#Regex匹配字串的方法如下:
1.使用C#中使用RegexSystem.Text.RegularExpressions命名空間;
2.使用C#中使用RegexMatches()方法匹配字串,格式如下:
MatchCollection Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
其中Str表示輸入字串,Pattern表示匹配模式,RegexOptions.IgnoreCase表示忽略大小寫,RegexOptions.ExplicitCapture表示改變收集匹配方式。
3.匹配結果儲存在MatchCollection集合中,可以通過迴圈遍曆結果集取出Match對象的結果。
TestRagular.cs:
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 = @"\bm\S*c\b";
Matches = Regex.Matches(Str, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
WriteMatches(Str, Matches);
}
}
}