iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#正则表达式(Regex类)用法实例总结
  • 914
分享到

C#正则表达式(Regex类)用法实例总结

c#正则表达式的用法c# 正则式C# 正则表达式 2022-11-13 14:11:08 914人浏览 泡泡鱼
摘要

目录前言1.正则表达式的概念1.1正则表达式的组成1.1.1元字符是什么1.1.2定位元字符1.2三个括号?1.3简化正则表达式1.4@符号的作用1.5正则表达式可以实现四种功能:2

前言

最近学是C#的窗口应用开发编程,然后我在网站搜了一个早上,结果大多数是有一些基础的才看得懂,像对与我这个小白,看了半天都看不懂

最后,还是请教了大神,把我教会了

下面就我对C#的正则表达式的一些总结,第一次写博客,哈哈哈哈,写的不好请见谅,各位大佬们,爱你们。

1.正则表达式的概念

什么是正则表达式?

英文Regular Expression,是计算机科学的一一个 重要概念,她使用一种数学算法来解决计算机程序中的文本检索,匹配等问题,正则表达式语言是一种专门用于字符串处理的语言。在很多语言中都提供了对它的支持,C#也不例外,它可以帮我们解决下面的问题:例如账号、密码的验证等等、

1.1正则表达式的组成

正则表达式就是由普通字符以及特殊字符(成为元字符)组成的文字模式。该模式描述在查找文字

1.1.1元字符是什么

所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

1.1.2定位元字符

字符 说明

  • \b 匹配单词的开始或结束.
  • \B 匹配非单词的开始或结束
  • ^匹配必须出现在字符串的开头或行的开头
  • $匹配必须出现在以下位置: 字符串结尾、字符串结尾处的\n之前或行的结尾。
  • \A 指定匹配必须出 现在字符串的开头(忽略 Mutiline 选项)。
  • \z指定匹配必 须出现在字符串的结尾(忽略 Multiline选项)。
  • \z指定匹配必须出现在字符串的结尾或字符串结尾处的\n之前(忽略Multilie选项)。
  • \G 指定匹配必须出现在上- -个匹配结束的地方。与Match.NextMatch() -起使用时,此断言确保所有匹配都是连续的。

1.2三个括号?

在正则表达式中有3种类型的括号

他们分别是:方括号、花括号、圆括号、(简称方花园)?

方括号“[“和花括号“{“●

方括号"[“内是需要匹配的字符,

花括号”{"内是指定匹配字符的数量。

圆括号“(“ :表示用来分组的。

插入符号“入”:表示正则式的开始

美元符号“$” :表示正则式的结束

1.3简化正则表达式

实际命令快捷命令
[0-9](数字)d
[a-z][0-9][_](数字、字母、下划线)W
0次或多次发生*
至少一次发生+
0次或1次发生?

1.4@符号的作用

我们经常在正则表达式字符串上加@字符,目的就是为了,不让编译器去解析其中的转义字符,,而作为正则表达式语法(元字符)存在。

在这里插入代码片

1.5正则表达式可以实现四种功能:

因为我看到其他博客说C#有很多方法可以用正则表达式,然后下面的一些例子,都用的是我认为,比较简单的方法。大神勿喷,┗|`O′|┛ 嗷~~

温馨提示:要运用下面的一些语句的要引入

using System.Text.RegularExpressions的命名空间

1,获取:通过正则表达式,从字符串中获取我们想要的部分

Regex reg = new Regex("[0-9]*");//这是搜索匹配0-9的数字
Console.WriteLine(reg.Match("12asda"));//最后提取出了12成功,嘻嘻

2,匹配:判断给定的字符中是否符合正则表达式的过滤逻辑 你可以认为正则表达式表述了一个字符串的书写规则

在这里的就得用从开头到结尾都为的数字为True,出现一个不为数字输出False
Regex reg = new Regex("^[0-9]*$");//判断整个字符串是否都为数字
Console.WriteLine(reg.IsMatch("12asda"));//最后输出False
Console.WriteLine(reg.IsMatch("124536346"));//最后输出True

3, 分割

1、用字符串分隔: 
using System.Text.RegularExpressions;
string str="aaajsbbbjsccc";
string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);
foreach (string i in sArray) Response.Write(i.ToString() + "<br>");


输出结果:
aaa
bbb
ccc
2、用多个字符来分隔:
string str="aaajbbbscccjDDDseee"; 
string[] sArray=str.Split(new char[2] {'j','s'}); 
foreach(string i in sArray) Response.Write(i.ToString() + "<br>"); 
输出结果:
aaa
bbb
ccc
ddd
eee
3、用单个字符来分隔:
string str="aaajbbbjccc";
string[] sArray=str.Split('j');
foreach(string i in sArray) Response.Write(i.ToString() + "<br>");
输出结果:
aaa
bbb
ccc

4, 替换

string s = "aaa12342525";
Regex r = new Regex("[0-9]");//正则表达式规则
Console.WriteLine(r);//这个输出为 [0-9] (我也不知道具体的原理)?
s = r.Replace(s, "9", 1);//第一个参数是字符串,第二个是正确匹配字符串的时候要替换的字符,第三个参数就是正确匹配正则表达式,然后替换的次数
Console.Write(s);//输出aaa92342525

2.常用的正则表达式方法

2.1静态方法IsMath

1,静态方法IsMatch

IsMath(返回值是一个布尔类型,用于判断指定的字符串是否与正则表达式字符中匹配,它有三个重载方法)

bool IsMatch(string input, string pattern);

参数:

input: 要搜索匹配项的字符串。

pattern:要匹配的正则表达式模式。

返回结果:如果正则表达式找到匹配项,则为true;否则,为false。

bool IsMatch(string inpdt, string pattern, RegexOptions options);

参数:

input: 要搜索匹配项的字符串。

pattern:要匹配的正则表达式模式。

options:枚举值 的一一个按位组合, 这些枚举值提供匹配选项。

返回结果:如果正则表达式找到匹配项,则为true;否则,为false。

bool IsMatch(string input, string pattern, RegexOptions options, TimeSpan matchTimeout);

参数:

input: 要搜索匹配项的字符串。

pattern:要匹配的正则表达式模式。

options:枚举值的一个按位组合,这些枚举值提供匹配选项。

matchTimeout:超时间隔

System.Text.RegularExpressions.Regex.InfiniteMatchTimeout 指示该方法不应超时。

返回结果:如果正则表达式找到匹配项,则为true;否则,为false。

2.1.1 关于参数RegexOptions

它是一个枚举类型,有以下枚举值


RegexOptions枚举值          内联标志         简单说明
ExplicitCapture               n           只有定义了命名或编号的组才捕获
IgnoreCase                    i           不区分大小写
IgnorePatternWhitespace       x           消除模式中的非转义空白并启用由#标记的注释。
MultiLine                     m           多行模式,其原理是修改了^和$的含义
SingleLine                    s            单行模式,和Multiline相对 

2.2静态方法Match

Match的作用:使用指定的匹配选项在输入字符串中搜索指定的正则表达式的第一个匹配项。返回一个包含有关匹配的信息的对象。同样有三个重载方法,参数和IsMatch方法相同。

此外,在Regex类中, 还有一个同名的非静态方法,适用于多个实例的情况下,效率更高- - 些。

下面的关于Match的三个重载方法

  • Match Match(string input, string pattern);
  • Match Match(string input,string pattern, RegexOptions options); input,
  • Match Match(string string pattern, RegexOptions options, TimeSpan matchTimeout);

2.3静态方法Matchs

静态方法Matches,在指定的输入字符串中搜索指定的正则表达式的所有匹配项。跟上面方法不同之处,就是这个方法返回的是所有匹配项,他同样有三个重载方法,并且参数和Match方法完全相同此外,在Regex类中,还有一个同名的非静态方法,适用于多个实例的情况下,效率更高- -些。

2.4 Replaces函数

我们知道正则表达式主要是实现验证,提取,分割,替换字符的功能.Replace函数是实现替换功能的.

1 )Replace(string input,string pattern,string replacement)

//input是源字 符串,pattern是匹配的条件,replacement是替换的内容,就是把符合匹配条件pattern的内容转换成它

比如string result = Regex.Replace("abc", "ab", "#" );
➢//结果是#c,就是把字符串abc中的ab替换成#

2 )Replace(string input,string pattern,string replacement,RegexOptions options)

//RegexOptions是- 一个枚举类型,用来做- -些设定

//前面用注释时 就用到了RegexOptions.IgnorePatternWhitespace.如果在匹配时忽略大小写就可以用

RegexOptions.lgnoreCase
比如string result = Regex.Replace("ABc", "ab", “#" ,RegexOptions.lgnoreCase);

补充:在 Regex 类中使用 IsMatch 方法判断所匹配的字符串是否满足正则表达式的要求

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("请输入一个邮箱");
        string email = Console.ReadLine();
        Regex regex = new Regex(@"^(\w)+(\.\w)*@(\w)+((\.\w+)+)$");
        if (regex.IsMatch(email))
        {
            Console.WriteLine("邮箱格式正确。");
        }
        else
        {
            Console.WriteLine("邮箱格式不正确。");
        }
    }
}

总结

到此这篇关于C#正则表达式(Regex类)用法的文章就介绍到这了,更多相关C#正则表达式用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#正则表达式(Regex类)用法实例总结

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 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# 正则表达式
  • 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
  • VBS正则表达式的语法总结
    本篇内容主要讲解“VBS正则表达式的语法总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VBS正则表达式的语法总结”吧!正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特...
    99+
    2023-06-09
  • Kotlin语言编程Regex正则表达式实例详解
    目录前言Regex 构造函数常用正则表达方法示例展示1.containsMatchIn(input: CharSequence) 包含指定字符串2.matches(input: Ch...
    99+
    2024-04-02
  • python常用的正则表达式总结
    本篇内容介绍了“python常用的正则表达式总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!检验手机号码# 要求:手机号码必须为...
    99+
    2023-06-02
  • Python正则表达式总结分享
    目录1. 正则表达式基础1.1. 简单介绍1.2. 数量词的贪婪模式与非贪婪模式1.3. 反斜杠的困扰1.4. 匹配模式2. re模块2.1. 开始使用re2.2. Match2.3...
    99+
    2024-04-02
  • Python的RegEx正则表达式怎么使用
    RegEx 或正则表达式是形成搜索模式的字符序列。RegEx 可用于检查字符串是否包含指定的搜索模式。RegEx 模块Python 提供名为 re 的内置包,可用于处理正则表达式。导入 re 模块:import rePython 中的 Re...
    99+
    2023-05-19
    Python regex
  • Java 之正则表达式语法及常用正则表达式汇总
    正则表达式概念: 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表...
    99+
    2023-08-18
    正则表达式 java 开发语言
  • python re 正则表达式学习总结
    # -*- coding: utf-8 -*- import re import os #------------------------------------- re(正则表达式)模块 ------------------------...
    99+
    2023-01-31
    正则表达式 python
  • java正则表达式的实例用法
    本篇内容介绍了“java正则表达式的实例用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java正则表达式实例详解 创建正则表达...
    99+
    2023-06-03
  • Python面向对象总结及类与正则表达式
    一丶面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 方法:类中定义的函数。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在...
    99+
    2023-01-31
    面向对象 正则表达式 Python
  • Python正则表达式中的'r'用法总结
    目录Python正则表达式中的'r'一、Python字符串前面加'r'二、正则表达式匹配原理三、正则表达式前面加'r'总结Python...
    99+
    2023-05-18
    python正则表达式r python 正则表达 python 正则表达式
  • C#中正则表达式(Regex)过滤内容的基本使用方法
    目录命名空间简单了解后开始教程1.读取文本内容2.创建正则表达式3.输出匹配好的内容补充:C#正则表达式筛选去掉不符合的字符总结先看英文意思 命名空间 using System.T...
    99+
    2022-11-13
    c# regex 正则表达式 regex正则表达式 c# regex过滤内容
  • PostgreSQL模式匹配与正则表达式方法总结
    目录1.1 PostgreSQL中的模式匹配和正则表达式1.2 传统SQL的LIKE操作符1.3 SIMILAR TO正则表达式1.4 POSIX正则表达式1.5 模式匹配函数substring总结1.1 Postgre...
    99+
    2022-11-19
    postgresql模式匹配 postgresql正则表达式 pg正则
  • Java中Pattern用法实例(正则表达式)
    目录1. 正则表达式的应用2. 常用正则表达式3 贪婪匹配与懒惰匹配补充:其它的一些用法总结1. 正则表达式的应用 在给用户发送消息时通常情况会有相同的消息模板,但其中部分信息跟用户...
    99+
    2024-04-02
  • Python进阶篇之正则表达式常用语法总结
    目录正则表达式概述1、点-匹配所有字符2、星号-重复匹配任意次3、加号-重复匹配多次4、 花括号-匹配指定次数5、 问号-贪婪模式和非贪婪模式6、方括号-匹配几个字符之一7、起始位置...
    99+
    2024-04-02
  • C#使用正则表达式
    一.正则基础 1. []方括号表示匹配可以匹配方括号中的任意点单个字符,方括号只允许匹配单个字符。2. | 或表示两项之间的一个选择,它不能和方括号使用,只能和小括号使用。3. ()...
    99+
    2024-04-02
  • python中正则表达式findall的用法实例
    正则口径:知道前后取中间,如果最后$结束 python中则这表达式的方法通常由re.match re.search re.findall re.findall匹配的时候,会...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作