使用Regex类需要引用命名空间:using System.Text.RegularExpressions;

利用Regex类实现全部匹配输出

  1. string str = "test4323232test432323";
  2. Regex r = new Regex("test4");
  3. MatchCollection m = r.Matches(str);
  4.  
  5. //1.匹配所有出现的
  6. foreach (var item in m)
  7. {
  8. Console.Write(item);
  9. }

最终输出:test4test4

利用Regex类实现验证

示例1:注释的代码所起的作用是相同的,不过一个是静态方法,一个是实例方法

  1. var source = "刘备关羽张飞孙权";
  2. //Regex regex = new Regex("孙权");
  3. //if (regex.IsMatch(source))
  4. //{
  5. // Console.WriteLine("字符串中包含有敏感词:孙权!");
  6. //}
  7. if (Regex.IsMatch(source, "孙权"))
  8. {
  9.   Console.WriteLine("字符串中包含有敏感词:孙权!");
  10. }
  11. Console.ReadLine();

示例2:使用带两个参数的构造函数,第二个参数指示忽略大小写,很常用

  1. var source = "123abc345DEf";
  2. Regex regex = new Regex("def",RegexOptions.IgnoreCase);
  3. if (regex.IsMatch(source))
  4. {
  5.   Console.WriteLine("字符串中包含有敏感词:def!");
  6. }
  7. Console.ReadLine();

使用Regex类进行替换

示例1:简单情况

  1. var source = "123abc456ABC789";
  2. // 静态方法
  3. //var newSource=Regex.Replace(source,"abc","|",RegexOptions.IgnoreCase);
  4. // 实例方法
  5. Regex regex = new Regex("abc", RegexOptions.IgnoreCase);
  6. var newSource = regex.Replace(source, "|");
  7. Console.WriteLine("原字符串:"+source);
  8. Console.WriteLine("替换后的字符串:" + newSource);
  9. Console.ReadLine();

结果:

原字符串:123abc456ABC789

替换后的字符串:123|456|789

示例2:将匹配到的选项替换为html代码,我们使用了MatchEvaluator委托

  1. var source = "123abc456ABCD789";
  2. Regex regex = new Regex("[A-Z]{3}", RegexOptions.IgnoreCase);
  3. var newSource = regex.Replace(source,new MatchEvaluator(OutPutMatch));
  4. Console.WriteLine("原字符串:"+source);
  5. Console.WriteLine("替换后的字符串:" + newSource);
  6. Console.ReadLine();
  7.  
  8. private static string OutPutMatch(Match match)
  9. {
  10.   return "<b>" +match.Value+ "</b>";
  11. }

输出:

原字符串:123abc456ABCD789

替换后的字符串:123<b>abc</b>456<b>ABC</b>D789

C# Regex类用法的更多相关文章

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

    上一篇讲述了在C#中有关正则表达式的类之间的关系,以及它们的方法,这一篇主要是将Regex这个类的用法的,关于Match及MatchCollection类会在下一篇讲到.对于正则表达式的应用,基本上可 ...

  2. C#正则表达式Regex类的用法

    C#正则表达式Regex类的用法 更多2014/2/18 来源:C#学习浏览量:36891 学习标签: 正则表达式 Regex 本文导读:正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串, ...

  3. (转)C#正则表达式Regex类的用法

    原文地址如下:http://www.studyofnet.com/news/297.html 一.C#正则表达式符号模式 字 符 描 述 \ 转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反 ...

  4. (转)regex类(个人理解)

    regex类(个人理解)   C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找 ...

  5. C#正则表达式编程(三):Match类和Group类用法

    前面两篇讲述了正则表达式的基础和一些简单的例子,这篇将稍微深入一点探讨一下正则表达式分组,在.NET中正则表达式分组是用Match类来代表的.首先先看一段代码: /// <summary> ...

  6. C#正则表达式Regex类

    C#正则表达式Regex类的使用 C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类.这个包包含于System.Text.RegularExpressions命名空间下面,而这个命名空间 ...

  7. 用Regex类计算一个字符串出现次数是最好方法【转载】

    我的一个朋友问我,怎么在c#或vb.net中,计算一个字符串中查找另一个字符串中出现的次数,他说在网上打了好多方法,我看了一下,有的是用replace的方法去实现,这种方法不是太好,占资源太大了.其实 ...

  8. C#正则表达式Regex类使用

    作为文本处理的利器——Perl语言对正则表达式的最强大支持起到了重要的作用,正因为如此,许多其他语言在加入正则表达式引擎的时候都会或多或少的兼顾perl风格的正则表达式,开发出相应的引擎.本人使用pe ...

  9. 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法

    装饰者模式(Decorator Pattern) Java的IO类 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26716 ...

随机推荐

  1. 用户不在sudoers文件中的解决方法

    1.更改/etc/sudoers权限为777 2.修改文件中 root    ALL=(ALL)       ALL 下方增加 user    ALL=(ALL)       ALL 3.回复文件/e ...

  2. ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK

    看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, 加入一个表10W数据,另一个表也是10万数据,当你用linq建立一个连接查询 ...

  3. 【转】Class.forName()用法详解

    ref: http://blog.csdn.net/kaiwii/article/details/7405761 主要功能 Class.forName(xxx.xx.xx)返回的是一个类 Class. ...

  4. silverlight 画图InkPresenter

    <UserControl x:Class="SilverlightTest.PolygonTest" xmlns="http://schemas.microsoft ...

  5. 【转】理解JavaScript之闭包

    闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...

  6. CentOS 普通用户设置sudo权限

    1.先切换到root用户下,输入命令 su 2.添加sudo文件的写权限,命令是: chmod u+w /etc/sudoers 3.编辑sudoers文件 vi /etc/sudoers 找到 ro ...

  7. How to check Windows 7 OS is permanently activated?[Windows 7]

    Press Windows + R, then you can enter : slmgr.vbs -xpr

  8. Oracle bbed 实用示例-----修改Data内容、恢复delete的rows

    bbed 可以在db open 状态来进行修改,但是建议在做任何修改操作之前先shutdown db. 这样避免checkpoint 进程重写bbed 对block 的修改. 也避免oracle 在b ...

  9. Oracle RAC Failover

    Oracle  RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会 ...

  10. 1107. Social Clusters (30)

    When register on a social network, you are always asked to specify your hobbies in order to find som ...