返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#正则表达式Regex类的用法
  • 681
分享到

C#正则表达式Regex类的用法

2024-04-02 19:04:59 681人浏览 安东尼
摘要

一、C#正则表达式符号模式 字  符 描  述

一、C#正则表达式符号模式

字  符 描  述
\ 转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
* 匹配前面的零次或多次的子表达式
+ 匹配前面的一次或多次的子表达式
? 匹配前面的零次或一次的子表达式
{n} n是一个非负整数,匹配前面的n次子表达式
{n,} n是一个非负整数,至少匹配前面的n次子表达式
{n,m} mn均为非负整数,其中n<=m,最少匹配n次且最多匹配m
? 当该字符紧跟在其他限制符(*,+,?,{n},{n,},{nm})后面时,匹配模式尽可能少的匹配所搜索的字符串
. 匹配除“\n”之外的任何单个字符
(pattern) 匹配pattern并获取这一匹配
(?:pattern) 匹配pattern但不获取匹配结果
(?=pattern) 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串
(?!pattern) 负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串
x|y 匹配xy。例如,‘z|food'能匹配“z”或“food”。‘(z|f)ood'则匹配“zood”或“food”
[xyz] 字符集合。匹配所包含的任意一个字符。例如,‘[abc]'可以匹配“plain”中的‘a'
[^xyz] 负值字符集合。匹配未包含的任意字符。例如,‘[^abc]'可以匹配“plain”中的‘p'
[a-z] 匹配指定范围内的任意字符。例如,‘[a-z]'可以匹配'a'到'z'范围内的任意小写字母字符
[^a-z] 匹配不在指定范围内的任意字符。例如,‘[^a-z]'可以匹配不在‘a'~‘z''内的任意字符
\b 匹配一个单词边界,指单词和空格间的位置
\B 匹配非单词边界
\d 匹配一个数字字符,等价于[0-9]
\D 匹配一个非数字字符,等价于[^0-9]
\f 匹配一个换页符
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配任何空白字符,包括空格、制表符、换页符等
\S 匹配任何非空白字符
\t 匹配一个制表符
\v 匹配一个垂直制表符。等价于\x0b和\cK
\w 匹配包括下划线的任何单词字符。等价于‘'[A-Za-z0-9_]'
\W 匹配任何非单词字符。等价于‘[^A-Za-z0-9_]'

说明:

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

二、在C#中,要使用正则表达式类,请在源文件开头处添加以下语句:

using System.Text.RegularExpressions;

三、RegEx类常用的方法

1、静态Match方法

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

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

Regex.Match(string input, string pattern);

Regex.Match(string input, string pattern, RegexOptions options);

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

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

RegexOptions枚举的有效值是:

Complied表示编译此模式

CultureInvariant表示不考虑文化背景

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

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

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

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

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

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

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

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

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

2、静态的Matches方法

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

3、静态的IsMatch方法

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

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

四、RegEx类的实例

1.字符串替换

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

string line="ADDR=1234;NAME=ZHANG;PHONE=6789";

Regex reg = new Regex("NAME=(.+);");

string modified = reg.Replace(line, "NAME=WANG;");

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

2.字符串匹配

例如我想提取刚才那条记录中的NAME值

Regex reg = new Regex("NAME=(.+);");

Match match=reg.Match(line);

string value=match.Groups[1].Value;

3、Match实例3

文本中含有"speed=30.2mph",需要提取该速度值,但是速度的单位可能是公制也可能是英制,mph,km/h,m/s都有可能;另外前后可能有空格。

string line="lane=1;speed=30.3mph;acceleration=2.5mph/s";

Regex reg=new Regex(@"speed\s*=\s*([\d\.]+)\s*(mph|km/h|m/s)*");

Match match=reg.Match(line);

那么在返回的结果中match.Groups[1].Value将含有数值,而match.Groups[2].Value将含有单位。

4、再比如,解码gps的GPRMC字符串,只需

Regex reg = new Regex(@"^\$GPRMC,[\d\.]*,[A|V],(-?[0-9]*\.?[0-9]+),([NS]*),(-?[0-9]*\.?[0-9]+),([EW]*),.*");

就可以获得经度、纬度值,而以前需要几十行代码。

五、System.Text.RegularExpressions命名空间的说明

该名称空间包括8个类,1个枚举,1个委托。他们分别是:

Capture: 包含一次匹配的结果; CaptureCollection: Capture的序列; Group: 一次组记录的结果,由Capture继承而来; GroupCollection:表示捕获组的集合 Match: 一次表达式的匹配结果,由Group继承而来; MatchCollection: Match的一个序列; MatchEvaluator: 执行替换操作时使用的委托; Regex:编译后的表达式的实例。 RegexCompilationInfo:提供编译器用于将正则表达式编译为独立程序集的信息 RegexOptions 提供用于设置正则表达式的枚举值 Regex类中还包含一些静态的方法: Escape: 对字符串中的regex中的转义符进行转义; IsMatch: 如果表达式在字符串中匹配,该方法返回一个布尔值; Match: 返回Match的实例; Matches: 返回一系列的Match的方法; Replace: 用替换字符串替换匹配的表达式; Split: 返回一系列由表达式决定的字符串; Unescape:不对字符串中的转义字符转义。

以上所述是小编给大家介绍的C#正则表达式Regex类的用法,希望对大家有所帮助。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: C#正则表达式Regex类的用法

本文链接: https://lsjlt.com/news/160226.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#正则表达式Regex类的用法
    一、C#正则表达式符号模式 字  符 描  述 ...
    99+
    2024-04-02
  • C#正则表达式Regex类怎么使用
    这篇文章主要介绍“C#正则表达式Regex类怎么使用”,在日常操作中,相信很多人在C#正则表达式Regex类怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#正则表达式Regex类怎么使用”的疑惑有所...
    99+
    2023-06-22
  • C#正则表达式Regex用法详解
    目录一、正则表达式应用举例1、C#校验合法性:2、C#限制输入3、正则表达式匹配闭合HTML标签(支持嵌套)1、分组构造2、举例:二、.Net正则表达式测试器1、功能简介2、下载与安...
    99+
    2024-04-02
  • C#正则表达式(Regex类)用法实例总结
    目录前言1.正则表达式的概念1.1正则表达式的组成1.1.1元字符是什么1.1.2定位元字符1.2三个括号1.3简化正则表达式1.4@符号的作用1.5正则表达式可以实现四种功能:2....
    99+
    2022-11-13
    c#正则表达式的用法 c# 正则式 C# 正则表达式
  • Python的RegEx正则表达式怎么使用
    RegEx 或正则表达式是形成搜索模式的字符序列。RegEx 可用于检查字符串是否包含指定的搜索模式。RegEx 模块Python 提供名为 re 的内置包,可用于处理正则表达式。导入 re 模块:import rePython 中的 Re...
    99+
    2023-05-19
    Python regex
  • 如何入门正则表达式Regex
    这篇文章给大家介绍如何入门正则表达式Regex,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。今天要分享的内容是正则表达式Regex。某天中午正要拿起手机打...
    99+
    2024-04-02
  • C#中正则表达式(Regex)过滤内容的基本使用方法
    目录命名空间简单了解后开始教程1.读取文本内容2.创建正则表达式3.输出匹配好的内容补充:C#正则表达式筛选去掉不符合的字符总结先看英文意思 命名空间 using System.T...
    99+
    2022-11-13
    c# regex 正则表达式 regex正则表达式 c# regex过滤内容
  • Regex正则表达式判断密码强度
    目录需求在线测试Regex正文密码强度分类Regex分析中强度密码同理。高强度密码同理。补充:密码强度 弱 中 强 正则表达式判断需求   最近在最做一个软件的注...
    99+
    2023-02-01
    正则表达式判断密码强度 正则表达式判断密码
  • Java正则表达式 Pattern 类的用法
    Pattern 类是 Java 正则表达式中的一个重要类,它用于创建一个正则表达式模式对象。Pattern 类的常用方法如下:1. ...
    99+
    2023-09-07
    Java
  • C#正则表达式语法的应用
    这篇文章主要介绍“C#正则表达式语法的应用”,在日常操作中,相信很多人在C#正则表达式语法的应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#正则表达式语法的应用”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • C#使用正则表达式
    一.正则基础 1. []方括号表示匹配可以匹配方括号中的任意点单个字符,方括号只允许匹配单个字符。2. | 或表示两项之间的一个选择,它不能和方括号使用,只能和小括号使用。3. ()...
    99+
    2024-04-02
  • Java正则表达式APIMatcher类方法
    目录一、Pattern.DOTALL二、Pattern.LITERAL三、Pattern.MULTILINE四、Matcher类方法索引方法Study方法Replacement方法一...
    99+
    2024-04-02
  • SQL正则表达式及mybatis中使用正则表达式的方法
    小编给大家分享一下SQL正则表达式及mybatis中使用正则表达式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql...
    99+
    2024-04-02
  • python正则表达式的用法
    本篇内容介绍了“python正则表达式的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单模式 我们...
    99+
    2024-04-02
  • Python入门教程(二十九)Python的RegEx正则表达式
    RegEx 或正则表达式是形成搜索模式的字符序列。 RegEx 可用于检查字符串是否包含指定的搜索模式。 RegEx 模块 Python 提供名为 re 的内置包,可用于处理正则表达...
    99+
    2023-05-18
    Python RegEx Python正则表达式
  • Kotlin语言编程Regex正则表达式实例详解
    目录前言Regex 构造函数常用正则表达方法示例展示1.containsMatchIn(input: CharSequence) 包含指定字符串2.matches(input: Ch...
    99+
    2024-04-02
  • C#正则表达式大全
    目录一、简介字符转义 字符类分组构造限定符二、C#常用正则表达式符号大全三、代码一、简介 正则表达式是一种匹配输入文本的模式,.Net 框架提供了允许这种匹配的正则表达式引...
    99+
    2024-04-02
  • C#正则表达式之Ismatch()的用法解读
    目录C#正则表达式之Ismatch()1.IsMatch()方法2.RegexOptions枚举3.Spilt()方法C#正则表达式编写及验证方式正则表达式验证总结C#正则表达式之I...
    99+
    2023-05-18
    C#正则表达式 C# Ismatch()用法 C#正则表达式Ismatch()
  • Java 之正则表达式语法及常用正则表达式汇总
    正则表达式概念: 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表...
    99+
    2023-08-18
    正则表达式 java 开发语言
  • C++ 正则表达式的应用详解
    目录一、为什么要学正则表达式C++string处理:二、正则程序库(regex)正则文法:正则库:匹配(Match)搜索(Search)替换(Replace)一、为什么要学正则表达式...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作