常用正则 常用的C#正则表达式

常用正则表达式

正则表达式是一种字符串匹配的工具,通常被用来检索、替换那些符合某个规则的文本。其语法有点特殊,但一旦掌握,可以大大提高我们对文本的处理效率。

常用的正则表达式

以下是一些常用的正则表达式:

  • 匹配手机号: ^1[3-9]\d{9}$
  • 邮箱:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
  • 身份证号码:\d{17}[0-9xX]|\d{14}[0-9xX]
  • URL地址:^(https?://)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*/?$
  • IP地址:\d+\.\d+\.\d+\.\d+
  • 数字:\d+
  • 字母:\w+
  • 中文:[\u4e00-\u9fa5]+

匹配手机号

手机号码由11位数字组成,以1开头。具体的正则表达式如下:

string pattern = "^1[3-9]\\d{9}$";

例子:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string[] numbers = { "13512345678", "18912345678", "12345",
                             "1361234567" };
        string pattern = "^1[3-9]\\d{9}$";

        foreach (string number in numbers)
        {
            Console.Write("{0}: ", number);
            if (Regex.IsMatch(number, pattern))
               Console.WriteLine("Valid");
            else
               Console.WriteLine("Invalid");
        }
    }
}

输出结果:

13512345678: Valid
18912345678: Valid
12345: Invalid
1361234567: Invalid

匹配邮箱

邮箱地址由用户名和域名两部分组成,具体的正则表达式如下:

string pattern = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";

例子:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string[] emails = { "abc@163.com", "xyz@gmail.com", "abc@.com",
                             "123" };
        string pattern = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";

        foreach (string email in emails)
        {
            Console.Write("{0}: ", email);
            if (Regex.IsMatch(email, pattern))
               Console.WriteLine("Valid");
            else
               Console.WriteLine("Invalid");
        }
    }
}

输出结果:

abc@163.com: Valid
xyz@gmail.com: Valid
abc@.com: Invalid
123: Invalid

常用的C#正则表达式

在C#中,我们可以使用正则表达式库System.Text.RegularExpressions来进行正则表达式的匹配。

Match方法

Match方法可以用来查找字符串中与指定正则表达式匹配的第一个子串,并返回一个Match对象。

例子:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string input = "Hello, world!";
        string pattern = "Hello";

        Match match = Regex.Match(input, pattern);

        Console.WriteLine("Pattern: {0}", pattern);
        Console.WriteLine("Input: {0}", input);
        if (match.Success)
            Console.WriteLine("Match found: {0}", match.Value);
        else
            Console.WriteLine("Match not found.");
    }
}

输出结果:

Pattern: Hello
Input: Hello, world!
Match found: Hello

Replace方法

Replace方法可以用来替换字符串中所有匹配正则表达式的子串,并返回替换后的字符串。

例子:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string input = "Hello, world!";
        string pattern = "Hello";
        string replacement = "Hi";

        string result = Regex.Replace(input, pattern, replacement);

        Console.WriteLine("Pattern: {0}", pattern);
        Console.WriteLine("Input: {0}", input);
        Console.WriteLine("Replacement: {0}", replacement);
        Console.WriteLine("Result: {0}", result);
    }
}

输出结果:

Pattern: Hello
Input: Hello, world!
Replacement: Hi
Result: Hi, world!

总结

以上是常用的正则表达式及在C#中使用它们的方法。熟练掌握正则表达式可以大大提高我们的编码效率和代码质量,值得一学。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:常用正则 常用的C#正则表达式 - Python技术站

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

相关文章

  • C# 如何获取处于运行中的Excel、Word对象

    获取处于运行中的Excel、Word对象的完整攻略如下: 获取Excel对象 引入COM组件库: csharp using System.Runtime.InteropServices; 获取进程中Excel对象: csharp // 获取Excel进程 object objExcel = Marshal.GetActiveObject(“Excel.App…

    C# 2023年5月15日
    00
  • C#判断系统是32位还是64位的方法

    C#判断系统是32位还是64位的方法 在C#编程中,有时候需要判断操作系统是32位还是64位。本文将介绍如何在C#中通过代码来判断操作系统的位数,提供两个示例说明。 通过Environment.Is64BitOperatingSystem判断 C#提供了Environment类来访问系统的环境变量和操作系统的信息。其中,Environment.Is64Bit…

    C# 2023年6月7日
    00
  • Visual studio 2017如何发布dotnet core到docker

    在本攻略中,我们将详细讲解如何使用Visual Studio 2017将.NET Core应用程序发布到Docker,并提供两个示例说明。 步骤一:安装Docker for Windows 在使用Visual Studio 2017将.NET Core应用程序发布到Docker之前,您需要安装Docker for Windows。您可以从Docker官网下载…

    C# 2023年5月17日
    00
  • C#中sizeof的用法实例分析

    C#中的sizeof运算符可以用于获取数据类型所占用的字节数。在本篇文章中,我们将深入探讨sizeof的用法,并通过实例分析来加深理解。以下是攻略内容: 前置知识 在学习sizeof之前,我们需要对C#的数据类型有一定的了解。在C#中,常见的数据类型包括int、long、float、double、char等等。这些数据类型有着不同的字节数,以int类型为例,…

    C# 2023年5月15日
    00
  • C#基于Twain协议调用扫描仪,设置多图像输出模式(Multi image output)

    C#是一门功能强大的编程语言,可以通过使用Twain协议来调用扫描仪并设置多图像输出模式。下面是具体的步骤: 1. 下载Twain接口 要使用Twain协议,需要首先下载Twain接口。可以通过NuGet包管理器进行下载。 安装步骤如下: 在Visual Studio中选择“工具”菜单,找到“NuGet包管理器”,选择“程序包管理器控制台”,打开控制台。 输…

    C# 2023年6月7日
    00
  • C++ 和 C# 中的 lambda的方法技巧

    C++ 和 C# 中的 Lambda 表达式 什么是 Lambda 表达式 Lambda 表达式是从匿名函数演化而来的一种语法。用来简化函数对象的创建。Lambda 表达式可以作为参数传递给函数,也可以被定义为变量和成员变量。Lambda 表达式可以是任何有返回值的函数。 C++ 使用 Lambda 表达式 C++11 开始支持 Lambda 表达式,通过使…

    C# 2023年6月6日
    00
  • 如何在ASP.Net Core使用分布式缓存的实现

    如何在ASP.Net Core使用分布式缓存的实现攻略 在本攻略中,我们将详细讲解如何在ASP.Net Core应用程序中使用分布式缓存,并提供两个示例说明。 步骤一:安装NuGet包 在ASP.Net Core应用程序中使用分布式缓存,您需要安装Microsoft.Extensions.Caching.StackExchangeRedis NuGet包。您…

    C# 2023年5月17日
    00
  • ASP.NET Core MVC/WebApi基础系列1

    ASP.NET Core MVC/WebApi基础系列1 本攻略将介绍ASP.NET Core MVC/WebApi的基础知识,包括控制器、路由、模型绑定、过滤器等。本攻略将提供详细的步骤和示例说明,以帮助您快速入门ASP.NET Core MVC/WebApi。 步骤 步骤1:创建一个新的ASP.NET Core MVC/WebApi项目 首先,需要创建一…

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