WEB开发网
开发学院软件开发C语言 C#正则表达式编程(二):Regex 类用法 阅读

C#正则表达式编程(二):Regex 类用法

 2010-09-30 22:44:15 来源:WEB开发网   
核心提示: 使用Regex类进行替换上面的处理仅仅是查看提交的内容中是否有被禁止的关键词,其实有时候还可以做到将被禁止的关键词进行替换,C#正则表达式编程(二):Regex 类用法(3),例如将上面用到的字符串中的任何形式的"ABC"替换成"|",下面就是一个例子:/

使用Regex类进行替换

上面的处理仅仅是查看提交的内容中是否有被禁止的关键词,其实有时候还可以做到将被禁止的关键词进行替换,例如将上面用到的字符串中的任何形式的"ABC"替换成"|",下面就是一个例子:

/// <summary>
/// 实现字符串替换功能
/// </summary>
public void Replace()
{
        string source = "刘备ABC关羽ABc张飞Abc赵云abc诸葛亮aBC孙权abC周瑜AbC鲁肃aBc曹操DEF许攸郭嘉需晃袁绍";
        Regex regex = new Regex("abc", RegexOptions.IgnoreCase);
        string result=regex.Replace(source, "|");
        Console.WriteLine("原始字符串:" + source);
        Console.WriteLine("替换后的字符串:" + result);
}

输出结果:

原始字符串:刘备ABC关羽ABc张飞Abc赵云abc诸葛亮aBC孙权abC周瑜AbC鲁肃aBc曹操DEF许攸郭嘉需晃袁绍

替换后的字符串:刘备|关羽|张飞|赵云|诸葛亮|孙权|周瑜|鲁肃|曹操DEF许攸郭嘉需晃袁绍

实际上有时候我们遇到的情况可能不仅仅这么简单,例如有时候我们希望将字符串中的任何形式的“ABC”及“DEF”实现HTML形式的加粗,也就是替换成<b>abc</b>及<b>def</b>这种形式,当然还保持和原来一致的大小写形式,代码如下:

/// <summary>
/// 实现字符串替换功能
/// </summary>
public void ReplaceMatchEvaluator()
{
        string source = "刘备ABC关羽ABc张飞Abc赵云abc诸葛亮aBC孙权abC周瑜AbC鲁肃aBc曹操DEF许攸郭嘉需晃袁绍";
        Regex regex = new Regex("[A-Z]{3}", RegexOptions.IgnoreCase);
        string result = regex.Replace(source, new MatchEvaluator(OutPutMatch));
        Console.WriteLine("原始字符串:" + source);
        Console.WriteLine("替换后的字符串:" + result);
}
/// <summary>
/// MatchEvaluator委托中调用的方法,可以对匹配结果进行处理
/// </summary>
/// <param name="match">操作过程中的单个正则表达式匹配</param>
/// <returns></returns>
private string OutPutMatch(Match match)
{
        return "<b>" + match.Value + "</b>";
}

输出结果如下:

原始字符串:刘备ABC关羽ABc张飞Abc赵云abc诸葛亮aBC孙权abC周瑜AbC鲁肃aBc曹操DEF许攸郭嘉需晃袁绍

替换后的字符串:刘备<b>ABC</b>关羽<b>ABc</b>张飞<b>Abc</b>赵云<b>abc</b>诸葛亮<b>aBC</b>孙权<b>abC</b>周瑜<b>AbC</b>鲁肃<b>aBc</b>曹操<b>DEF</b>许攸郭嘉需晃袁绍

在上面的例子中,我们使用了MatchEvaluator委托,并且还涉及到了Match类(Match类将会在下一篇讲述),在MatchEvaluator委托中使用到的Match类表示了单个的正则表达式匹配,通过改变match实例中Value的值来达到完成替换的目的。

在本篇中仅仅是讲述了Regex类的一些简单用法,也没有讲述正则表达式的相关知识,不过即使如此也能减轻我们的一部分工作,学习和灵活运用正则表达式是一个长期积累的过程。

出处http://zhoufoxcn.blog.51cto.com/792419/280580

上一页  1 2 3 

Tags:正则 表达式 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接