正则表达式匹配规则( 二 )


若要使替换的正则表达式更易于控制,可以使用括号来限制替换的范围 。即,确保它只应用于两个单词和 。
正则表达式涉及的基本类 Regex类
Regex类表示只读正则表达式,它包含各种静态方法,允许在不显示创建其他类的实例的情况下,使用其他正则表达式类 。
编写程序,使用正则表达式,匹配一个字符串 。
using System;using System.Text.RegularExpressions;namespace Project19{class Program{static void Main(string[] args){string str = "2md13nabcttac";//定义一个字符串str,并赋值//实例化Regex类的对象,再定义一个简单的正则表达式“abc”Regex regex = new Regex("abc");if (regex.IsMatch(str))//通过IsMatch方法,判断字符串str是否匹配正则表达式{Console.WriteLine("字符串中包含abc");}Console.ReadKey();}}}
【程序分析】本例演示了如何使用正则表达式匹配一个字符串 。在代码中,首先定义字符串str,并赋值为“”;然后实例化Regex类的对象为regex,再定义一个简单的正则表达式“abc”;最后使用方法在if语句中,判断字符串str中是否有字符“abc”
字符串中包含abc
Match类
Match类表示单个正则表达式匹配的结果,该类没有公共构造函数 。
下表列出了Match类的常用方法 。
编写程序,定义一个字符串,然后调用Match(,)和方法来一次检索一个匹配项 。
using System;using System.Text.RegularExpressions;namespace Project20{class Program{static void Main(string[] args){string str = "int[] values = { 1, 2, 3 };\n" +"for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" +"{\n" +"Console.Write(values[ctr]);\n" +"if (ctr < values.GetUpperBound(1))\n" +"Console.Write(\", \");\n" +"}\n" +"Console.WriteLine();\n";string pattern = @"Console\.Write(Line)?";//实例化Match类的对象为match,并返回的Regex.Match的方法中Match match = Regex.Match(str, pattern);//如果匹配成功,循环进行输出while (match.Success){Console.WriteLine("\"" + "{0}" + "\"" + "在位置的源代码中找到 {1}.",match.Value, match.Index);match = match.NextMatch();}Console.ReadKey();}}}
【程序分析】本例演示了Match类的使用 。在代码中,首先声明了一个字符串input并为其赋值;然后再定义一个字符串,用于匹配str中所有字符串“.Write(Line)”的位置;接着,实例化Match类的对象为match,并返回到Regex.Match的方法中,表示第一个模式匹配字符串中;最后使用while语句,循环输出与字符串“.Write(Line)”匹配的位置 。
【正则表达式匹配规则】"Console.Write"在位置的源代码中找到 112."Console.Write"在位置的源代码中找到 184."Console.WriteLine"在位置的源代码中找到 207.