C#中正则表达式的3种世界十大博彩公司_C#教程

在C#中,我们通常使用正则表达式来表示正则表达式。。一般正则表达式引擎支持以下3种世界十大博彩公司:单线模式(单线)、多行模式(多行)和忽略实例(忽略)。

1. 单线模式(单线)
定义MSDN:更改点 (.) 的含义,使它与每个字符匹配,而不是例外。 \n 每个字符的外部匹配。。
使用单线模式的典型场景是从我们那里获取信息。。

示例:

我们使用WebBub控件,获取以下HTML源代码,它存储在变量STR中。:


Line 1
Line 2


我们要提取div标签及其内容。,代码编写如下:

string pattern = @"
.*
"; Regex regex = new 正则表达式(模式) if ((STR)) ((STR)值) else (错配!");

//结果为:Mismatch!

错误分析:

一般认为,点符号()与任何单个字符匹配。,和(.)*)匹配任意字符数。但实际上,点符号与新行不符。。在Windows中等效于它的表达式是[^ \r\n]。
以及我们从Web站点获取的HTML源代码,几乎没有改变。此时正在使用单线模式。,它可以改变点符号的含义。。修改正则表达式实例的构造函数,用于声明单行模式的使用:

string pattern = @"
.*
"; Regex regex = new 正则表达式(模式), ); if ((STR)) ((STR)值) else (错配!");

/*
结果为:

Line 1
Line 2

*/

单线模式嵌入式修改器:

我们可以直接嵌入单行模式到正则表达式中。:

(?s)

.*

修饰符描述,它后面的表达式使用单行模式。所以不要把它放在最后。。此外,你可以使用(?)-s)关闭单行模式。

注意:嵌入模式的优先级高于ReXEXCESSE SE的优先级。,那么使用之后(?)s),不管它是否被使用,单行模式解析。

2. 多线模式(多行)

定义MSDN:更改 ^ 和 $ 的含义,在任何行的开始和结束时匹配它们。,而不仅仅是在整个字符串的开始和结束。。

示例:

有一个文本文件,它的每一行都是用户名。,将文件读入变量STR进行处理。内容如下:

二十四画学生
TerryLee
莫会
Dflying Chen
Rainy

借用你的前任在博客花园中的大名

我们想找出一个使用英文字母开头的用户名,代码编写如下:

string pattern = @"^[A-Za-z]+.*";
Regex regex = new 正则表达式(模式)
if ((STR))
  ((STR)值)
else
  (错配!");

//结果为:Mismatch!

错误分析:

是字符串的起始锚,str的第一个字符是一个中文字,所以它不匹配。我们可以使用多行来改变含义。,使它与每行的开始相匹配,不是整个字符串的开始。

代码的更改如下:

string pattern = @"^[A-Za-z]+.*";
Regex regex = new 正则表达式(模式), );
if ((STR))
  ((STR)值)
else
  (错配!");

//结果为:TerryLee

同时,多行模式也改变了,使它与每一行的结尾匹配,不是整个字符串的末尾。

它不同于(^)和,a)和(\z)不受多线模式的影响。,始终匹配整个字符串的开始和结束。

多线模式嵌入修改器:(?m)与(?-m)

3. 忽略案例(忽略)

定义MSDN:指定不区分情况与情况的情况。

这种模式很容易理解。,它认为大小和大小是相同的。。我们仍然有以上的例子来解释。

示例:

string pattern = ^ [aZ  *
Regex regex = new 正则表达式(模式),  | RegexOptions.IgnoreCase);
if ((STR))
  ((STR)值)
else
  (错配!");

//结果为:TerryLee

分析:请注意此时使用的正则表达式。,我们没有写大写字母。,但它与以大写字母开头的名称相匹配。,这是忽略案件规模的影响。。

忽略实例的嵌入修饰符:(?i)与(?-i)

总结:

最后,我们使用表格来总结这三种模型。

定义 影响表达 RegexOptions枚举 嵌入式标识符
单行模式 更改点 (.) 的含义,使它与每个字符匹配,而不是例外。 \n 每个字符的外部匹配。。 Singleline (?s)
多行模式 更改 ^ 和 $ 的含义,在任何行的开始和结束时匹配它们。,而不仅仅是在整个字符串的开始和结束。。 Multiline (?m)
忽略大小写 指定不区分情况与情况的情况。 IgnoreCase (?i)

发表评论

电子邮件地址不会被公开。 必填项已用*标注