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#隐藏手机号、邮箱等敏感信息的实现方法

    首先,我们需要定义一个字符串替换方法,该方法可以将指定的字符串替换为指定字符的重复串。代码实现如下: public static string Mask(string text, char maskChar = ‘*’, int startIndex = 3, int endIndex = -4) { if (string.IsNullOrEmpty(tex…

    C# 2023年5月15日
    00
  • C#中委托的基本用法总结

    C#中委托的基本用法总结 委托的定义 委托是一种类型,它可以封装一个或多个方法,就像一个类型可以表示属性、字段和方法一样。 在C#中,委托由 delegate 关键字定义,用于表示对带有指定参数列表和返回值类型的方法的引用。 委托类型的声明语法格式如下所示: delegate returnValue delegateName(params) 其中,retur…

    C# 2023年6月7日
    00
  • 代码自动生成工具ASP.NET Maker 2019安装及激活教程(附替换补丁+软件下载)

    ASP.NET Maker 2019是一款用于生成ASP.NET Core MVC、Web API、Web应用程序和移动应用程序的代码自动生成工具。以下是安装和激活教程: STEP 1:下载软件 首先需要从官方网站https://www.hkvstore.com/aspmaker下载ASP.NET Maker 2019安装包。 STEP 2:安装软件 下载完…

    C# 2023年5月31日
    00
  • .net中as和is之间的区别分析

    我来为你详细讲解一下“.net中as和is之间的区别分析”。 1. as和is的基本使用 在.NET中,as和is都是类型操作符,用于类型转换或类型检查。 1.1 as操作符 as操作符用于将一个引用类型转换为另外一个引用类型,或将一个类类型转换为其派生类型。如果转换失败,则as返回null,而不是抛出异常。例子如下: object obj = "…

    C# 2023年5月31日
    00
  • C#中dynamic关键字的正确用法(推荐)

    下面是“C#中dynamic关键字的正确用法(推荐)”的详细攻略: 什么是dynamic关键字 C#中的dynamic关键字,是用于在运行时(而非编译时)进行类型检查和绑定,它可以让我们代码更加灵活、简洁、易读。 C#中的dynamic和var关键字的区别在于,var关键字是在编译时进行类型判断并声明变量类型,在编译后变量类型就确定了,而dynamic关键字…

    C# 2023年5月15日
    00
  • C#采用递归实现阶乘的方法

    C#采用递归实现阶乘的方法 递归是一种程序设计方法,其优点是可以让问题变得更简单,同时也有助于降低程序的复杂度。在C#中,使用递归来实现阶乘是一种非常直观的方法。在本文中,我们将讲解如何使用C#来实现递归阶乘的方法。 递归的基本定义 递归(Recursion),是指函数自己调用自己,每次调用时传入不同的变量。通俗点说就是一个函数在执行的过程中会调用自身。 递…

    C# 2023年6月6日
    00
  • C#生成PDF的方法

    下面是C#生成PDF的方法的完整攻略: Step 1:选取PDF生成库 目前市面上有很多PDF生成库可供选择,如iTextSharp、PDFSharp、NReco等,你可以根据自己的需求和实际情况进行选择。这里我们以iTextSharp为例进行讲解。 Step 2:安装iTextSharp 在Visual Studio中打开Nuget Package Man…

    C# 2023年6月1日
    00
  • .NET Core 处理 WebAPI JSON 返回烦人的null为空

    .NET Core 处理 WebAPI JSON 返回烦人的null为空攻略 在使用 .NET Core 开发 WebAPI 时,有时会遇到 JSON 返回值中的 null 被转换为空字符串的问题。本攻略将介绍如何解决这个问题。 步骤 步骤1:安装 Newtonsoft.Json 库 在 .NET Core 中,可以使用 Newtonsoft.Json 库来…

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