C# 正则表达式常用的符号和模式解析(最新推荐)

C# 正则表达式常用的符号和模式解析(最新推荐)

简介

正则表达式是面向“字符”模式的,由字符组成的一种检索模式。在C#中,对正则表达式有很好的支持,我们可以使用System.Text.RegularExpressions.Regex类进行正则表达式的匹配和操作。

虽然正则表达式的语法看似复杂,但是当你掌握了其中的一些常用的符号,你会发现正则表达式变得简单易用。下面将为大家详细讲解C#正则表达式常用的符号和模式解析。

常用符号

下面是常用的正则表达式符号:

符号 解释
\ 转义字符
^ 行的开头
$ 行的结尾
. 除换行符外的任何字符
* 0个或多个前面的表达式
+ 1个或多个前面的表达式
? 0个或1个前面的表达式
{n} 正好n次前面的表达式
{n,} 至少n次前面的表达式
{n,m} n到m次前面的表达式
[] 字符集合
[^ ] 否定字符集合

### 转义字符 \

转义字符\是正则表达式中的一个重要符号。如果你想插入元字符本身,你可以使用转义字符\。例如,如果你想查找“abc+”字符串中的“+”,你可以使用如下的正则表达式:

string pattern = "abc\\+";

行的开头 ^ 和行的结尾 $

如果你想匹配以某个字符开头的字符串或者以某个字符结尾的字符串,你可以使用行的开头^和行的结尾$。例如,如果你想匹配以“http”开头的链接,你可以使用如下的正则表达式:

string pattern = "^http";

类似地,如果你想匹配以“.com”结尾的链接,你可以使用如下的正则表达式:

string pattern = ".com$";

任意字符 .

点号.是正则表达式中另一个重要的符号,它可以匹配除了换行符之外的任何字符。例如,如果你想查找“ab”后面的任意字符,你可以使用如下的正则表达式:

string pattern = "ab.";

0个或多个 *,1个或多个 + 和0个或1个 ?

星号、加号+和问号?是三个常用的量词符号。星号表示0个或多个前面的表达式,加号+表示1个或多个前面的表达式,问号?表示0个或1个前面的表达式。例如,如果你想匹配任意数量的a字符,你可以使用如下的正则表达式:

string pattern = "a*";

如果你想匹配任意数量的b字符,但是至少要有一个b字母,你可以使用如下的正则表达式:

string pattern = "b+";

如果你想匹配字符串“aba”和“ab”,你可以使用如下的正则表达式:

string pattern = "aba?";

准确数量 {}

如果你想匹配一个数字或字符的固定次数,你可以使用大括号{}。其中{n}表示正好n次前面的表达式,{n,}表示至少n次前面的表达式,{n,m}表示n到m次前面的表达式。

例如,如果你想匹配10个a字符,你可以使用如下的正则表达式:

string pattern = "a{10}";

字符集合 []

字符集合使用中括号[]括起来,用来匹配一组中的任意一个字符。例如,如果你想匹配小写字母a、b或c,你可以使用如下的正则表达式:

string pattern = "[abc]";

否定字符集合 [^ ]

否定字符集合使用中括号[]和 ^ 符号一起使用,用来匹配不属于字符集合中的任何一个字符。例如,如果你想匹配除了小写字母a、b和c之外的任何字符,你可以使用如下的正则表达式:

string pattern = "[^abc]";

示例说明

接下来,将演示两个示例来让你了解正则表达式的运用。

示例1:验证密码强度

假设现在需要验证密码强度,要求密码必须包含至少一个数字、一个大写字母和一个特殊符号。

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        Console.Write("请输入密码:");
        string password = Console.ReadLine();

        bool isStrongPassword = Regex.IsMatch(password, @"^(?=.*\d)(?=.*[A-Z])(?=.*[!@#$%^&*()_+])[A-Za-z\d!@#$%^&*()_+]{8,}$");

        if (isStrongPassword)
        {
            Console.WriteLine("密码强度符合要求!");
        }
        else
        {
            Console.WriteLine("密码强度过弱,请重新输入!");
        }
    }
}

在上面的示例中,使用了正则表达式^(?=.*\d)(?=.*[A-Z])(?=.*[!@#$%^&*()_+])[A-Za-z\d!@#$%^&*()_+]{8,}$来验证密码。这个表达式意思是:

  • (?=.*\d)表示密码中必须包含至少一个数字;
  • (?=.*[A-Z])表示密码中必须包含至少一个大写字母;
  • (?=.*[!@#$%^&*()_+])表示密码中必须包含至少一个特殊符号;
  • [A-Za-z\d!@#$%^&*()_+]表示密码可以使用大小写字母、数字和一些特殊符号组成;
  • {8,}表示密码的长度至少为8位。

示例2:搜索文本中的电话号码

假设现在有一个字符串文本,我们需要从中搜索电话号码。

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string text = "我的电话号码是:13612345678,你的电话号码是:13887654321。请尽快联系我。";

        MatchCollection matches = Regex.Matches(text, @"\d{11}");

        Console.WriteLine("搜索到的电话号码如下:");
        foreach (Match match in matches)
        {
            Console.WriteLine(match.Value);
        }
    }
}

在上面的示例中,使用了正则表达式\d{11}来搜索电话号码。这个表达式意思是,匹配11个数字。

结论

通过以上的讲解和示例,相信大家已经掌握了正则表达式在C#中的应用。正则表达式虽然看上去稍微有一些难度,但是掌握了一些常用的符号之后,就变得简单易懂。多加练习,相信你会成为正则表达式的高手。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 正则表达式常用的符号和模式解析(最新推荐) - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • windows mysql 自动备份的几种方法汇总

    Windows MySQL 自动备份的几种方法汇总 为什么需要自动备份 在使用 MySQL 数据库时,为了保护数据的安全性,我们需要进行备份操作。但是,手动备份数据是非常繁琐的,而且容易出现遗漏的情况。因此,使用自动备份工具可以提高备份的效率,也可以保证备份的全面性。 几种自动备份方法 1. 使用 mysqldump 命令进行备份 使用 mysqldump …

    C# 2023年5月31日
    00
  • Net5 WorkService 继承 Quarzt 及 Net5处理文件上传功能

    Net5 WorkService 继承 Quarzt 及 Net5 处理文件上传功能 Net5 WorkService 继承 Quarzt 及 Net5 处理文件上传功能是一种常见的操作。本攻略将介绍如何使用 Net5 WorkService 继承 Quarzt 及 Net5 处理文件上传功能。 继承 Quarzt Quartz 是一个开源的作业调度框架,可…

    C# 2023年5月17日
    00
  • C#图形编程GDI+基础介绍

    C#图形编程GDI+基础介绍 什么是GDI+? GDI+ (Graphics Device Interface) 是一套应用程序接口 (API),可以让程序员利用计算机的图形显示资源来创建和操作图形对象。在C#中,GDI+是一个用于图形绘制的本机API,可以让你通过编程轻松地操作Windows界面上的各种图形和文本,例如,画图、截图、缩放、亮度调节、色彩调节…

    C# 2023年5月31日
    00
  • ASP.NET Core使用HostingStartup增强启动操作方法详解

    在ASP.NET Core中,您可以使用HostingStartup来增强应用程序的启动操作。本攻略将深入探讨如何使用HostingStartup,并提供两个示例说明。 HostingStartup HostingStartup是一个接口,它定义了一个方法Configure方法,该方法在应用程序启动时被调用。您可以使用HostingStartup来执行应用程…

    C# 2023年5月17日
    00
  • c#中CAD文件读取实例

    下面是关于“C#中CAD文件读取实例”的完整攻略: 1. 准备工作 在开始之前,您需要安装以下两个工具: Autodesk AutoCAD:用于创建和编辑CAD文件。 DWG TrueView:用于浏览和转换DWG格式的CAD文件。 另外,您还需要安装以下C#类库: Autodesk.AutoCAD.Runtime:用于与AutoCAD交互。 Autodes…

    C# 2023年6月1日
    00
  • C#获取哈希加密生成随机安全码的类实例

    获取哈希加密生成随机安全码的类实例,可以使用C#的内置类库System.Security.Cryptography中的类MD5、SHA1、SHA256等类。以下是详细的攻略流程: 1.导入System.Security.Cryptography命名空间 在C#中使用加密算法需要导入System.Security.Cryptography命名空间。首先在代码中…

    C# 2023年6月8日
    00
  • ASP.NET编程简单实现生成静态页面的方法【附demo源码下载】

    为了更好地讲解“ASP.NET编程简单实现生成静态页面的方法”,我们需要分为以下几个部分进行详细讲解: 为什么需要生成静态页面? 静态页面生成的基本思路和流程 实现过程和示例说明 1. 为什么需要生成静态页面? 当我们访问一个网站时,实际上每一次访问都需要服务器去动态生成页面并将结果返回给浏览器。但是,当网站的访问量很大时,频繁地动态生成页面会极大地消耗服务…

    C# 2023年5月31日
    00
  • C#实现拼图游戏

    C#实现拼图游戏攻略 简介 拼图游戏是一种常见的益智休闲游戏,游戏的目标是通过调换图块的位置,将一张被分割成若干小块的图片恢复原样。在本攻略中,我们将使用C#语言实现一个简单的拼图游戏。 实现步骤 第一步:准备工作 在开始实现之前,需要准备以下工作: 下载安装Visual Studio开发环境。 下载准备好的游戏所需的图片资源。 第二步:创建项目并导入资源 …

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部