C#正则匹配RegexOptions选项的组合使用方法
2016-04-06 09:31
597 查看
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#进阶系列】20 异常和状态管理
- C#Base64编码
- C# winform程序防止前台卡死
- c# 一些细节
- c# 一些细节 之动态对象和匿名对象
- c#winform选择文件,文件夹,打开指定目录方法
- c# 一维数组和二维数组的定义几种方式
- Combobox使用
- C#中集合汇总
- C#委托和事件
- C# 基础知识 1
- C#多态之虚方法
- C#程序中session值的保存方法以及转为字符串的方法总结
- C#程序中session的基本设置示例及清除session的方法
- C#中DllImport用法
- C#实现属于自己的QQ截图工具
- C#一般处理程序 ashx.cs使用Session报错问题
- C#线程处理系列之线程池中的I/O线程
- C#委托基础:谈委托和接口