您的位置:首页 > 其它

用于正则表达式的 Regex.Matches静态方法的几种用法 转载

2013-05-27 16:13 549 查看
//①正则表达式 = > 匹配字符串
string Text = @"This is a book , this is my book , Is not IIS";

//定义一个模式字符串,不仅仅是纯文本,还可以是正则表达式
string Pattern = "is";

MatchCollection Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.IgnoreCase |         //忽略大小写
RegexOptions.ExplicitCapture |    //提高检索效率
RegexOptions.RightToLeft          //从左向右匹配字符串
);

Console.WriteLine("从右向左匹配字符串:");

foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0,2} ", NextMatch.Index);
Console.Write("匹配的内容:{0,2} ", NextMatch.Value);
Console.Write("/n");
}

Console.WriteLine();

//②匹配以大写I开头
//“/b”是转义序列,代表开头和结尾(一个字的边界,忽略空白或标点)
Pattern = @"/bI";
Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.ExplicitCapture    //提高检索效率
);

Console.WriteLine("从左向右匹配字符串:");

foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n");
}

Console.WriteLine();

//③匹配以大写I开头,大写S结尾的字符串
//“/b”是转义序列,代表开头和结尾(一个字的边界,忽略空白或标点)
///S*匹配任何不是空白的字符
Pattern = @"/bI/S*S/b";
Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.ExplicitCapture    //提高检索效率
);

Console.WriteLine("从左向右匹配字符串:");

foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n");
}

Console.WriteLine();

//④匹配his 或者iis,其中忽略大小写
Pattern = @"[h|i]is";
Matches = Regex.Matches(
Text,
Pattern,
RegexOptions.IgnoreCase |         //忽略大小写
RegexOptions.ExplicitCapture    //提高检索效率
);

Console.WriteLine("从左向右匹配字符串:");

foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n");
}

Console.WriteLine();

//⑤对Url的分组匹配
Text = "http://192.168.0.1:2008";
Pattern = @"/b(/S+)://(/S+)(?::(/S+))/b";
Matches = Regex.Matches(Text, Pattern);

Console.WriteLine("从左向右匹配字符串:");

foreach (Match NextMatch in Matches)
{
Console.Write("匹配的位置:{0} ", NextMatch.Index);
Console.Write("匹配的内容:{0} ", NextMatch.Value);
Console.Write("/n");

for (int i = 0; i < NextMatch.Groups.Count; i++)
{
Console.Write("匹配的组 {0}:{1,4} ", i + 1, NextMatch.Groups[i].Value);
Console.Write("/n");
}
}

Console.Read();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: