Bootstrap

Regex.IsMatch用法

Regex.IsMatch 是 .NET Framework 中 System.Text.RegularExpressions 命名空间下的一个静态方法,用于确定正则表达式模式是否在指定的输入字符串中找到匹配项。此方法非常适合用来快速检查字符串是否符合特定的格式或包含某些特征。

语法

 

Csharp

深色版本

public static bool IsMatch(string input, string pattern)
public static bool IsMatch(string input, string pattern, RegexOptions options)
  • input:要搜索匹配项的字符串。
  • pattern:要匹配的正则表达式模式。
  • options(可选):一个 RegexOptions 枚举值的组合,用于设置匹配选项(如忽略大小写、多行模式等)。如果不提供,则使用默认选项。

返回值

返回一个布尔值:

  • 如果找到了与指定模式相匹配的子字符串,则为 true
  • 否则为 false

示例

简单匹配
 

Csharp

深色版本

using System;
using System.Text.RegularExpressions;

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

        if (Regex.IsMatch(input, pattern))
        {
            Console.WriteLine("Pattern found.");
        }
        else
        {
            Console.WriteLine("Pattern not found.");
        }
    }
}
使用 RegexOptions
 

Csharp

深色版本

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string input = "Hello, World!";
        string pattern = "hello";
        
        // 忽略大小写的匹配
        if (Regex.IsMatch(input, pattern, RegexOptions.IgnoreCase))
        {
            Console.WriteLine("Pattern found with ignore case option.");
        }
        else
        {
            Console.WriteLine("Pattern not found.");
        }
    }
}
复杂模式匹配
 

Csharp

深色版本

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string input = "Contact us at [email protected] or [email protected].";
        string emailPattern = @"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b";

        if (Regex.IsMatch(input, emailPattern))
        {
            Console.WriteLine("Email address found in the text.");
        }
        else
        {
            Console.WriteLine("No email address found.");
        }
    }
}

注意事项

  1. 性能:如果需要多次使用相同的正则表达式进行匹配,考虑使用 Regex 类的构造函数创建 Regex 对象,并调用其 IsMatch 方法。这可以避免每次匹配时都重新编译正则表达式,提高性能。

     Csharp 

    深色版本

    Regex regex = new Regex(emailPattern);
    if (regex.IsMatch(input))
    {
        Console.WriteLine("Email address found in the text.");
    }
  2. 异常处理:虽然 Regex.IsMatch 不会抛出异常(除非传入无效的正则表达式),但为了代码健壮性,建议捕获并处理可能的异常情况。

  3. 线程安全:静态方法 Regex.IsMatch 是线程安全的,但如果你创建了 Regex 实例并在线程之间共享它,确保它是不可变的(即没有修改它的实例成员)。

;