C#正则表达式匹配替换字符串

事例一:\w+=>[A-Za-z1-9_],\s+=>任何空白字符,()=>捕获       

string text = @"public string testMatchObj string s string  match ";

string pat = @"(\w+)\s+(string)";
// Compile the regular expression.
Regex r = new Regex(pat, RegexOptions.IgnoreCase);
// Match the regular expression pattern against a text string.
Match m = r.Match(text);
int matchCount = 0;
while (m.Success) 
{
 Response.Write("Match"+ (++matchCount) + "<br>");
 for (int i = 1; i <= 2; i++) 
 {
  Group g = m.Groups[i];
  Response.Write("Group"+i+"='" + g + "'"  + "<br>");
  CaptureCollection cc = g.Captures;
  for (int j = 0; j < cc.Count; j++) 
  {
   Capture c = cc[j];
   Response.Write("Capture"+j+"='" + c + "', Position="+c.Index + "<br>");
  }
 }
 m = m.NextMatch();
}

该事例运行结果是:
Match1
Group1='public'
Capture0='public', Position=0
Group2='string'
Capture0='string', Position=7
Match2
Group1='testMatchObj'
Capture0='testMatchObj', Position=14
Group2='string'
Capture0='string', Position=27
Match3
Group1='s'
Capture0='s', Position=34
Group2='string'
Capture0='string', Position=36

事例二:

            string x = this.txt.Text;
            RegexOptions ops = RegexOptions.Multiline;
            Regex r = new Regex(@"\[(.+?)\]", ops); //\[(.+?)\/\]   @"\[(.+)\](.*?)\[\/\1\]"
            //Response.Write(r.IsMatch(x).ToString()+DateTime.Now.ToString());
            if (r.IsMatch(x))
            {
                x = r.Replace(x, "<$1>");
                Response.Write(x.ToString() + DateTime.Now.ToString());
                //Console.WriteLine("var x:" + x);//输出:Live for nothing
            }
            else
            {
                Response.Write("false" + DateTime.Now.ToString());
            }

这个是为了替换"[]"对,把它们换成"<>"

C#中的正则表达式包含在.NET基础雷库的一个名称空间下,这个名称空间就是System.Text.RegularExpressions。该名称空间包括8个类,1个枚举,1个委托。他们分别是
                     Capture: 包含一次匹配的结果; 
                     CaptureCollection: Capture的序列; 
                     Group: 一次组记录的结果,由Capture继承而来; 
                     GroupCollection:表示捕获组的集合
                     Match: 一次表达式的匹配结果,由Group继承而来; 
                     MatchCollection: Match的一个序列; 
                     MatchEvaluator: 执行替换操作时使用的委托; 
                     Regex:编译后的表达式的实例。 
                     RegexCompilationInfo:提供编译器用于将正则表达式编译为独立程序集的信息
                     RegexOptions 提供用于设置正则表达式的枚举值
Regex类中还包含一些静态的方法: 
                    Escape: 对字符串中的regex中的转义符进行转义; 
                    IsMatch: 如果表达式在字符串中匹配,该方法返回一个布尔值; 
                    Match: 返回Match的实例; 
                    Matches: 返回一系列的Match的方法; 
                    Replace: 用替换字符串替换匹配的表达式; 
                    Split: 返回一系列由表达式决定的字符串; 
                    Unescape:不对字符串中的转义字符转义。

posted @ 2011-04-20 10:14  流失的痕迹  阅读(29681)  评论(0编辑  收藏  举报