C#正则匹配RegexOptions选项的组合使用方法

 更新时间:2016年04月06日 09:31:36   作者:minlecun  
本文主要简单介绍RegexOptions各种选项的作用,并介绍如何组合使用,为初学者解除一些疑惑。

C#中使用正则所需要引用的命名空间是 using System.Text.RegularExpressions

它包含了8个类,用得最多是的Regex,Regex不仅可以用来创建正则表达式,而且提供了很多有用的方法。

首先来看一下如何创建一个Regex对象:

new Regex(string pattern)

new Regex(string pattern,RegexOptions options)

第一个参数是正则表达式字符串,第二个参数正则配置的选项,有以下几种选项:

IgnoreCase   //是匹配忽略大小写 默认情况区分大小写
RightToLeft   //从右到左查找字符串 默认是从左到右
None    //不设定标志  这是默认选项,就是不设置第2个参数  表示区分大小写 从左到右
MultiLine   //指定了^和$可以匹配行的开头和结尾,也就是说使用了换行分割,每一行能得到不同的匹配
SingleLine   //规定特殊字符"."匹配任一字符,换行符除外。默认情况下特殊字符"."不匹配换行

IgnoreCase的例子

string test = "Abcccccc";
Regex reg = new Regex("abc");
Console.WriteLine(reg.IsMatch(test)); //false
Regex reg1 = new Regex("abc",RegexOptions.IgnoreCase); //不区分大小写
Console.WriteLine(reg1.IsMatch(test));//true

RightToLeft的例子

string test = "vvv123===456vvv";
Regex reg = new Regex("\\d+");// 123  从左到右 匹配连续数字
Console.WriteLine(reg.Match(test));
Regex reg1 = new Regex("\\d+",RegexOptions.RightToLeft);
Console.WriteLine(reg1.Match(test));// 456 从右到左 匹配连续数字

MultiLine的例子

StringBuilder input = new StringBuilder();
input.AppendLine("A bbbb A");
input.AppendLine("C bbbb C");

string pattern = @"^\w";
Console.WriteLine(input.ToString());
MatchCollection matchCol = Regex.Matches(input.ToString(), pattern, RegexOptions.Multiline);
foreach (Match item in matchCol)
{
  Console.WriteLine("结果:{0}", item.Value);
}

这时可能有人会问了,如果既想忽略大小写,又想匹配多行,该怎么办呢,就是两种选项同时满足的情况,该如何做呢?

呵呵,当然是有方法的的,只要用竖线将两个选项隔开就可以了,如下举例

Regex.Matches(input.ToString(), pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);

相关文章

  • C#编程实现连接SQL SERVER数据库实例详解

    C#编程实现连接SQL SERVER数据库实例详解

    这篇文章主要介绍了C#编程实现连接SQL SERVER数据库的方法,以实例形式较为详细的分析了C#连接SQL SERVER数据库的相关步骤与具体实现技巧,需要的朋友可以参考下
    2015-11-11
  • 再谈异常处理try catch finally

    再谈异常处理try catch finally

    这篇文章主要介绍了再谈异常处理try catch finally 的相关资料,需要的朋友可以参考下
    2016-01-01
  • C#实现txt定位指定行完整实例

    C#实现txt定位指定行完整实例

    这篇文章主要介绍了C#实现txt定位指定行的方法,涉及C#针对文本文件进行光标定位的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#使用钩子获得按键信息的方法

    C#使用钩子获得按键信息的方法

    这篇文章主要介绍了C#使用钩子获得按键信息的方法,实例分析了C#中钩子的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • 提示出现unresolved external symbol _main的解决方法

    提示出现unresolved external symbol _main的解决方法

    提示出现unresolved external symbol _main的解决方法...
    2007-11-11
  • C#字符串如何提取数值(带小数点)

    C#字符串如何提取数值(带小数点)

    这篇文章主要介绍了C#字符串如何提取数值问题(带小数点),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • C#中窗体重复创建问题的解决方法

    C#中窗体重复创建问题的解决方法

    在C#Windows窗体应用中,我们经常遇到这样的问题,当我们触发一个窗口命令时,我连续点击其中一个命令,会出现多个同样的窗口,但我们是不管点击多少次,都只出现一次,所以本文给大家介绍了C#中窗体重复创建问题的解决方法,需要的朋友可以参考下
    2024-04-04
  • 基于C#委托的深入分析

    基于C#委托的深入分析

    本篇文章介绍了,基于C#委托的深入分析。需要的朋友参考下
    2013-04-04
  • C#、ASP.NET通用扩展工具类之LogicSugar

    C#、ASP.NET通用扩展工具类之LogicSugar

    这篇文章主要介绍了C#、ASP.NET通用扩展工具类之LogicSugar,本文直接给出实现代码和使用方法示例,需要的朋友可以参考下
    2015-06-06
  • winform 实现控制输入法

    winform 实现控制输入法

    在工作中遇到这样一个问题,在系统使用过程中,输入法会变灰导致无法使用输入法输入文字,就好像输入法被禁用了没有启用似的。对此,在这里做个备录
    2015-08-08

最新评论