首页 > 编程 > C# > 正文

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

2019-10-29 21:30:09
字体:
来源:转载
供稿:网友
本文主要简单介绍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)); //falseRegex 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#教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表