本文不详细解释正则表达式,只讲述在C#中正则类的常用函数用法。
Regex: C#中的内置正则表达式类
//新实例初始化Regex为指定的正则表达式类
string pattern = @"([a-z][A-Z]+):(\d+)";
Regex regex = new Regex(pattern);
IsMatch(string text): 检测文本是否有匹配正则表达式的字符串,返回值为bool型
//接上述实例
string text = "Mary:123, Bob:234";
Console.WriteLine(regex.IsMatch(text));//True
Match(string text): 返回文本中第一个匹配正则表达式的结果
//接上述例子
Match match = regex.Match(text);
Console.WriteLine(match.Groups.Count);//3,正则表达式的分组个数(子组个数+1)
Console.WriteLine("Matched text: \"{0}\"", match.Groups[0]);//Mary:123,表示匹配的整个字符串
Console.WriteLine("Name: \"{0}\"", match.Groups[1]);//Mary,表示匹配正则表达式的第一部分的串
Console.WriteLine("Number: \"{0}\"", match Groups[2]);//123,表示匹配正则表达式的第二部分的串
Matches(string text): 返回文本中匹配正则表达式的结果集合
//接上述例子
MatchCollection matches = regex.Matches(text);
Console.WriteLine(matches.Count);//返回匹配结果数量
foreach(Match m in matches)
Console.WriteLine(m.Group[0]);
//2
//Mary:123
//Bob:234
Replace(string text, string replacement): 将所有匹配正则表达式的字符串替换为指定的字符串
//接上述例子
string replacement = "000";
Console.WriteLine(regex.Replace(text, replacement));//Mary:000, Bob:000