常用正则 常用的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#实现加密与解密详解

    C#实现加密与解密详解 在C#开发中,我们常常需要对某些敏感数据进行加密处理,以保证数据的安全性。本文将详细讲解C#实现加密与解密的方法,包括对称加密、非对称加密和哈希算法的讲解,并提供示例代码演示。 对称加密 对称加密是指使用相同的密钥进行加密和解密的加密方式。常见的对称加密算法有DES、AES等。下面是使用AES加密的示例代码: using System…

    C# 2023年6月1日
    00
  • C#利用Random得随机数求均值、方差、正态分布的方法

    生成指定数量的随机数 首先需要生成指定数量的随机数,C#中使用Random类可以很方便地实现这个功能。下面是一个生成100个随机数的示例代码: int n = 100; double[] nums = new double[n]; Random rand = new Random(); for (int i = 0; i < n; i++) { num…

    C# 2023年6月7日
    00
  • WPF实现可视化扫码器的示例代码

    下面是针对“WPF实现可视化扫码器的示例代码”的完整攻略。 确定需求 首先需要明确我们要实现的功能,即实现一个可视化的扫码器。具体地说,我们需要以下功能: 打开摄像头并开始录像 在程序界面中实时显示视频流,并同时进行二维码的扫描 扫描到二维码后,弹出提示并将二维码信息显示在界面上 支持暂停和继续录像的操作 确定技术选型 由于我们需要实时显示视频,并对视频流进…

    C# 2023年6月6日
    00
  • C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx)

    C#仪器数据文件解析Excel文件的方法浅析 在C#编程中,经常需要从仪器导出的数据文件进行Excel格式的解析。本文将针对xls和xlsx两种常见的Excel文件格式,分别进行简单的介绍。 Excel文件的格式说明 Excel文件主要包括两个文件格式,即xls和xlsx。其中,xls文件是Excel 97-2003版本的二进制文件格式,而xlsx文件是Ex…

    C# 2023年5月31日
    00
  • C#生成不重复随机字符串类

    C#生成不重复随机字符串类可以通过以下几个步骤来实现: 导入命名空间:System.Security.Cryptography和System.Text。 C# using System.Security.Cryptography; using System.Text; 定义一个生成随机字符串的函数,函数可以包括一个参数,指定生成的字符串的长度。函数内部要创建…

    C# 2023年6月1日
    00
  • ASP.NET 计划任务实现方法(不使用外接程序,.net内部机制实现)

    ASP.NET计划任务是指在后台自动执行一些指定的操作,例如定时清理临时文件、备份数据库等。在ASP.NET中,实现计划任务有多种方式,包括使用第三方外接程序或者利用.NET内部机制。 下面详细讲解如何使用.NET内部机制实现ASP.NET计划任务。 第一步:创建运行时间表达式 .NET内部机制实现计划任务依赖于时间表达式,时间表达式能够指定时、分、秒、月、…

    C# 2023年5月31日
    00
  • ASP.NET中制作各种3D图表的方法

    制作各种3D图表,在ASP.NET中可以分为两类:使用前端JavaScript库和通过ASP.NET后端组件渲染3D图表。 使用前端JavaScript库 Three.js Three.js是一种流行的JavaScript库,它提供了一个轻量级的3D引擎,易于使用和构建高质量的3D应用程序。由于Three.js是一个开源库,因此它可以免费使用,并且拥有广泛的…

    C# 2023年6月3日
    00
  • C#实现读取指定盘符硬盘序列号的方法

    C#实现读取指定盘符硬盘序列号的方法可以分为以下几个步骤: 引入System.Management命名空间 要使用WMI类来获取硬盘序列号,需要引入System.Management命名空间。 using System.Management; 获取管理对象 可以通过ManagementObjectSearcher类来搜索计算机系统上可用的管理对象。通过查询W…

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