文档详情

C#正则表达式实用大全(建议收藏!).docx

发布:2025-06-01约2.74万字共33页下载文档
文本预览下载声明

C#正则表达式实用大全(建议收藏!)

目录前言文章导读基础梳理RegEx类常用的方法①静态Match方法②静态的Matches方法③静态的IsMatch方法RegEx类的实例⑴字符串替换⑵字符串匹配⑶Match实例⑷解码gps的GPRMC字符串⑸提取[]的值⑹提取()的值⑺提取()的值命名空间说明正则常用表达式㈠校验数字的表达式㈡校验字符的表达式㈢特殊需求表达式使用demo总结

前言

在网上看到一个不错的简易版正则匹配和替换的工具,现在补充进来,感觉还不错,效果如下(输入验证中文汉字的正则表达式)

在线下载

文章导读

正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串。正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法。Regex类表示不可变(只读)的正则表达式。它还包含各种静态方法,允许在不显式创建其他类的实例的情况下使用其他正则表达式类。

基础梳理

说明:

由于在正则表达式中\、、*、^、$、+、(、)、|、{、[等字符已经具有一定特殊意义,如果需要用它们的原始意义,则应该对它进行转义,例如希望在字符串中至少有一个\,那么正则表达式应该这么写:\\+。

RegEx类常用的方法

①静态Match方法

使用静态Match方法,可以得到源中第一个匹配模式的连续子串。

静态的Match方法有2个重载,分别是

Regex.Match(stringinput,stringpattern);

Regex.Match(stringinput,stringpattern,RegexOptionsoptions);

第一种重载的参数表示:输入、模式

第二种重载的参数表示:输入、模式、RegexOptions枚举的按位或组合。

RegexOptions枚举的有效值是:

Complied表示编译此模式

CultureInvariant表示不考虑文化背景

ECMAScript表示符合ECMAScript,这个值只能和IgnoreCase、Multiline、Complied连用

ExplicitCapture表示只保存显式命名的组

IgnoreCase表示不区分输入的大小写

IgnorePatternWhitespace表示去掉模式中的非转义空白,并启用由#标记的注释

Multiline表示多行模式,改变元字符^和$的含义,它们可以匹配行的开头和结尾

None表示无设置,此枚举项没有意义

RightToLeft表示从右向左扫描、匹配,这时,静态的Match方法返回从右向左的第一个匹配

Singleline表示单行模式,改变元字符.的意义,它可以匹配换行符

注意:Multiline在没有ECMAScript的情况下,可以和Singleline连用。Singleline和Multiline不互斥,但是和ECMAScript互斥。

②静态的Matches方法

这个方法的重载形式同静态的Match方法,返回一个MatchCollection,表示输入中,匹配模式的匹配的集合。

③静态的IsMatch方法

此方法返回一个bool,重载形式同静态的Matches,若输入中匹配模式,返回true,否则返回false。

可以理解为:IsMatch方法,返回Matches方法返回的集合是否为空。

RegEx类的实例

⑴字符串替换

//例如我想把如下格式记录中的NAME值修改为WANG

stringline=ADDR=1234;NAME=ZHANG;PHONE=6789;

Regexreg=newRegex(NAME=(.+););

stringmodified=reg.Replace(line,NAME=WANG;);

//修改后的字符串为ADDR=1234;NAME=WANG;PHONE=6789

⑵字符串匹配

stringline=ADDR=1234;NAME=ZHANG;PHONE=6789;

Regexreg=newRegex(NAME=(.+););

//例如我想提取line中的NAME值

Matchmatch=reg.Match(line);

stringvalue=match.Groups[1].Value;

Console.WriteLine(value的值为:

显示全部
相似文档