当前位置: 首页 > 编程笔记 >

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

朱啸
2023-03-14
本文向大家介绍C#正则匹配RegexOptions选项的组合使用方法,包括了C#正则匹配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);

 类似资料:
  • 我试图写一个正则表达式来匹配三个组,在三个组中,我希望有一个组是可选的。 正则表达式: 它匹配以下内容: 但是,不是在下面。 如何修改正则表达式,使其匹配两个组。如果第一条消息是三个组。 修复 测试 消息 如果是第二条消息,只有两组 < li >修复 < li >消息 消息

  • 本文向大家介绍JavaScript使用RegExp进行正则匹配的方法,包括了JavaScript使用RegExp进行正则匹配的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript使用RegExp进行正则匹配的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。

  • 我正在尝试匹配时间格式。时间可以用可选的小时、分钟和毫秒写入。唯一需要的值是秒。所以所有这些时间都写得正确,应该匹配。 我的正则表达式看起来像这样: 我希望每组对应正确的值。因此,组1应始终返回小时,组2应始终返回分钟,等等……我在Regex101中尝试了这一点,但正如您在这些结果中看到的,当没有小时时,组1总是优于组2。它与时间<code>11:12 如何确保每组始终对应正确的时间段?我可以以某

  • 问题内容: 假设以下单词顺序 我想做的是将文本从BLA提取到LOOK,但是最接近外观的BLA。即我想得到 我应该如何使用正则表达式呢?我得到了一个可行的解决方案,但是效率极低。 有没有更好,更高效的方法来实现此模式的匹配? 我想做的是:我想匹配BLA,然后向前进行前瞻,直到使用LOOK进行正向前进或使用BLA进行负向前进。但是我不知道将其放入正则表达式中的方法。 作为引擎,我在python中使用r

  • 问题内容: 我正在使用/ 来获取HTTP响应中的响应代码。返回1,但是尝试获取异常!知道为什么吗? 这是代码: 这是输出: 问题答案: 总是会创建一个新的匹配器,因此您需要再次致电。 尝试:

  • 基本模式匹配 一切从最基本的开始。模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。例如: ^once 这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串。例如该模式与字符串"once upon a time"匹配,与"There once was