C#正则表达式之Regex类用法详解

C#正则表达式之Regex类用法详解

正则表达式是一种强大的文本处理工具,常用于文本匹配、替换、过滤等操作。在C#中,我们可以使用Regex类来操作正则表达式。

Regex类的基本用法

Regex类提供了多个静态方法和实例方法,用于操作正则表达式。其中最常用的是Match和MatchCollection方法。

Match方法

Match方法用于查找第一个匹配的内容,并返回匹配结果。该方法有多个重载,详细参数和返回值可以查看 MSDN文档

以下是一个简单的示例,用于匹配字符串中的数字:

string input = "abc123def456";
Match match = Regex.Match(input, @"\d+");
if (match.Success)
{
    Console.WriteLine("Matched: " + match.Value);
}
else
{
    Console.WriteLine("Not matched");
}

输出结果为:

Matched: 123

MatchCollection方法

MatchCollection方法用于查找所有匹配的内容,并返回匹配结果集合。该方法也有多个重载,详细参数和返回值可以查看 MSDN文档

以下是一个简单的示例,用于匹配字符串中的所有单词:

string input = "hello world, my name is John";
MatchCollection matches = Regex.Matches(input, @"\b\w+\b");
foreach (Match match in matches)
{
    Console.WriteLine("Matched: " + match.Value);
}

输出结果为:

Matched: hello
Matched: world
Matched: my
Matched: name
Matched: is
Matched: John

实战案例:验证手机号码格式

以下是一个包含两个示例的完整案例,用于验证手机号码格式是否正确。

using System;
using System.Text.RegularExpressions;

class Program
{
    static bool IsMobileNumber(string input)
    {
        // 示例一:使用Regex.IsMatch方法判断手机号码格式是否正确
        return Regex.IsMatch(input, @"^1[3-9]\d{9}$");
    }

    static bool IsMobileNumber2(string input)
    {
        // 示例二:使用Regex.Match方法获取手机号码,并判断是否与原字符串相同
        Match match = Regex.Match(input, @"1[3-9]\d{9}");
        return match.Success && match.Value == input;
    }

    static void Main()
    {
        string[] inputs = {"13512345678", "189abc12345", "1351234", "135123456789"};
        foreach (string input in inputs)
        {
            Console.WriteLine("{0}: Is mobile number? {1} (method 1), {2} (method 2)", input, IsMobileNumber(input), IsMobileNumber2(input));
        }
    }
}

运行结果为:

13512345678: Is mobile number? True (method 1), True (method 2)
189abc12345: Is mobile number? False (method 1), False (method 2)
1351234: Is mobile number? False (method 1), False (method 2)
135123456789: Is mobile number? False (method 1), False (method 2)

在该案例中,我们使用了两种不同的方法来验证手机号码格式。第一种方法使用了Regex.IsMatch方法,直接判断字符串是否符合正则表达式。第二种方法使用了Regex.Match方法,获取到了手机号码后再和原字符串进行比较。

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

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

相关文章

  • C#操作SQLite数据库之读写数据库的方法

    C#操作SQLite数据库之读写数据库的方法 SQLite简介 SQLite是一款轻型、自包含且无需服务器的SQL数据库引擎,支持大部分的SQL标准,其数据存储在单个磁盘文件中,并使用标准的SQL查询语句进行访问。因此,SQLite具有许多优点,如具有跨平台跨语言访问、开源、简单易用、占用空间小、速度快等等。因此,SQLite是很多开发人员的首选数据库。 C…

    C# 2023年6月1日
    00
  • 轻松学习C#的ArrayList类

    轻松学习C#的ArrayList类 介绍 ArrayList是C#中的一个动态数组类,可以自动调整大小,支持任意数据类型的添加和移除。本文将提供一个完整的攻略,帮助你轻松学习并应用ArrayList。 创建ArrayList对象 你可以使用以下方法创建一个ArrayList对象: ArrayList list = new ArrayList(); 添加元素 …

    C# 2023年5月31日
    00
  • C#判断指定文件是否是只读的方法

    要判断指定文件是否为只读文件,有多种方式可以实现。下面介绍两种方法: 方法一:使用File类的GetAttributes方法及FileAttributes枚举值判断文件属性 File类提供了一些静态方法及属性,可实现对文件的基本操作功能。其中GetAttributes方法可获取文件的属性,包括只读、隐藏、系统、临时等属性。通过判断文件的属性是否包含FileA…

    C# 2023年6月1日
    00
  • C# cefSharep控件的使用详情

    C# cefSharp 控件的使用详情 什么是 cefSharp 控件 cefSharp 控件是一种基于 C# 的浏览器嵌入控件,它是一个基于 Chromium 的项目,可以通过 cefSharp 控件在 Windows 窗体应用程序中嵌入 HTML 内容和 JavaScript 脚本,并为这些内容提供浏览器的一般功能。 安装 cefSharp 控件 使用 …

    C# 2023年6月1日
    00
  • C#二维数组与多维数组的具体使用

    C#二维数组与多维数组的具体使用 在 C# 语言中,数组是一种重要的数据类型,能够存储多个同类型的元素。二维数组和多维数组具有相似的用法,但有着不同的实现方式和适用场景。 二维数组 二维数组的定义 在 C# 中,定义一个二维数组需要指定它的行数和列数。下面是一个定义了一个 3 行 4 列的整型数组的例子: int[,] myArray = new int[3…

    C# 2023年6月7日
    00
  • C# SendKeys使用方法介绍

    C#中的SendKeys提供了一种模拟按键的方法。它可以被用于许多场合,例如在自动化测试中,或者模拟用户输入等方面。下面是该方法的使用方法介绍: SendKeys方法 public static void SendKeys(string keys); SendKeys方法可以将一系列符号或字符串发送到当前活动窗口。 参数 keys:要发送的符号或字符串。 示…

    C# 2023年6月7日
    00
  • C#利用性能计数器监控网络状态

    下面是C#利用性能计数器监控网络状态的完整攻略: 准备工作 在开始使用性能计数器监控网络状态之前,需要做一些准备工作。首先,需要确保计算机已经安装了PerformanceCounter类所需的性能计数器。如果没有安装,可以在计算机管理控制台的“性能监视器”中打开“性能监视器”窗口,在左侧的树形菜单中选择“计算机名” ->“性能监视器” ->“实时…

    C# 2023年5月15日
    00
  • 提供一个可以将DocX转为doc的文档转换器 地址

    首先需要明确的是,DocX是Word 2007以后版本才有的文件格式,而doc则是早期的版本格式,因此需要将DocX转换为doc格式的情况还是比较常见的。以下是一个可以将DocX转为doc的文档转换器的详细攻略。 1. 确定文档转换器类型 首先需要选择一个可以将DocX转为doc的文档转换器。当前比较常用的转换器有在线转换器和桌面软件两种,我们可以根据实际需…

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