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#数组排序的两种常用方法

    C#数组排序的两种常用方法

    这篇文章主要介绍了C#数组排序的两种常用方法,实例分析了C#操作数组的相关技巧,需要的朋友可以参考下
    2015-05-05
  • c#实现把汉字转为带田字格背景的jpg图片

    c#实现把汉字转为带田字格背景的jpg图片

    这篇文章主要介绍了c#实现把汉字转为带田字格背景的jpg图片示例,需要的朋友可以参考下
    2014-03-03
  • C#递归算法之打靶算法分析

    C#递归算法之打靶算法分析

    这篇文章是对打靶算法分析,比较简单,但逻辑一定要清楚,分析问题的方法一定要准确,有需要的朋友可以参考一下。
    2016-06-06
  • C# Winform自动更新程序实例详解

    C# Winform自动更新程序实例详解

    这篇文章主要为大家详细介绍了C# Winform 自动更新程序实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • C#编程实现查看剪切板内容的方法

    C#编程实现查看剪切板内容的方法

    这篇文章主要介绍了C#编程实现查看剪切板内容的方法,涉及C#针对剪切板操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • C#基于Socket套接字的网络通信封装

    C#基于Socket套接字的网络通信封装

    这篇文章主要为大家详细介绍了C#基于Socket套接字的网络通信封装本文实例为大家分享了Java实现图片旋转的具体代码,供大家参考,具体内容如下
    2021-11-11
  • 在 Visual Studio 中查看反汇编代码

    在 Visual Studio 中查看反汇编代码

    这篇文章主要介绍了在 Visual Studio 中查看反汇编代码的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • C#禁止textbox复制、粘贴、剪切及鼠标右键的方法

    C#禁止textbox复制、粘贴、剪切及鼠标右键的方法

    这篇文章主要介绍了C#禁止textbox复制、粘贴、剪切及鼠标右键的方法,涉及C#针对窗口消息的处理技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • Entity Framework配置关系

    Entity Framework配置关系

    这篇文章介绍了Entity Framework配置关系的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# 获取当前总毫秒数的实例讲解

    C# 获取当前总毫秒数的实例讲解

    这篇文章主要介绍了C# 获取当前总毫秒数的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论