在这里插入图片描述

前言

正则表达式是处理字符串的强大工具,特别是在文本搜索、替换和验证中。本文将100个常用的C#正则表达式进行分类,以帮助我们更快速地找到适合的正则表达式解决方案。

1. 基础匹配

这些正则表达式用于匹配一些基本的字符或字符串模式。

  • 匹配任意字符: string pattern = ".";
  • 匹配任意空白字符: string pattern = @"\s";
  • 匹配任意非空白字符: string pattern = @"\S";
  • 匹配任意数字字符: string pattern = @"\d";
  • 匹配任意非数字字符: string pattern = @"\D";
  • 匹配任意字母数字字符: string pattern = @"\w";
  • 匹配任意非字母数字字符: string pattern = @"\W";
  • 匹配任意字母字符: string pattern = @"[a-zA-Z]";
  • 匹配任意小写字母: string pattern = @"[a-z]";
  • 匹配任意大写字母: string pattern = @"[A-Z]";

2. 数字处理

这些正则表达式用于匹配和处理数字相关的字符串。

  • 匹配单个数字: string pattern = @"\d";
  • 匹配多位数字: string pattern = @"\d+";
  • 匹配十六进制数字: string pattern = @"\b[0-9A-Fa-f]+\b";
  • 匹配包含数字的字符串: string pattern = @"\b\d+\b";
  • 匹配前导零的数字: string pattern = @"\b0*(\d+)\b";
  • 匹配负数: string pattern = @"^-?\d+$";

3. 字符串匹配

这些正则表达式用于匹配特定类型的字符串,如以某个字符开头或结尾的字符串。

  • 匹配以特定字符开头的字符串: string pattern = @"^prefix";
  • 匹配以特定字符结尾的字符串: string pattern = @"suffix$";
  • 匹配带连字符的单词: string pattern = @"\b\w+-\w+\b";
  • 匹配以字母开头的字符串: string pattern = @"^[a-zA-Z]";
  • 匹配以字母结尾的字符串: string pattern = @"[a-zA-Z]$";
  • 匹配带点的字符串: string pattern = @"\w+\.\w+";

4. 特殊字符处理

这些正则表达式用于处理字符串中的特殊字符和标记。

  • 匹配标点符号: string pattern = @"[.,!?;:'""]";
  • 匹配XML或HTML中的属性: string pattern = @"(\w+)\s*=\s*(['""]?)(.*?)\2";
  • 匹配成对的括号: string pattern = @"\([^()]*\)";
  • 匹配成对的HTML标签: string pattern = @"<(\w+)>.*?</\1>";
  • 匹配XML标签: string pattern = @"<[^>]+>";

5. 空白字符处理

这些正则表达式用于处理字符串中的空白字符。

  • 匹配单个空白字符: string pattern = @"\s";
  • 匹配一个或多个空白字符: string pattern = @"\s+";
  • 匹配行首的空白字符: string pattern = @"^\s";
  • 匹配行尾的空白字符: string pattern = @"\s$";
  • 匹配首尾带空格的字符串: string pattern = @"^\s+|\s+$";
  • 匹配具有多个空格的行: string pattern = @"^\s+.*\s+$";

6. 行和段落处理

这些正则表达式适用于多行文本的处理,如匹配特定的行或段落。

  • 匹配整行文本: string pattern = @"^.*$";
  • 匹配行首的字符串: string pattern = @"^prefix";
  • 匹配行尾的字符串: string pattern = @"suffix$";
  • 匹配多行字符串中的最后一行: string pattern = @"(\n.*)?$";
  • 匹配非空行: string pattern = @"\S";

7. 复杂模式匹配

这些正则表达式处理更为复杂的匹配模式,如重复字符或成对符号。

  • 匹配重复的字符: string pattern = @"(.)\1";
  • 匹配中间带空格的字符串: string pattern = @"\w+\s+\w+";
  • 匹配具有相同字符的连续单词: string pattern = @"(\b\w+\b)\s+\1";

8. 日期和时间

这些正则表达式专门用于处理日期和时间格式。

  • 匹配日期格式(dd/mm/yyyy): string pattern = @"^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/\d{4}$";

9. 特定语言字符

这些正则表达式用于处理特定语言的字符,如汉字或双字节字符。

  • 匹配双字节字符(比如中文): string pattern = @"[^\x00-\xff]";
  • 匹配汉字字符: string pattern = @"[\u4e00-\u9fa5]";

10. 文件和路径处理

这些正则表达式用于处理文件路径、URL等格式。

  • 匹配URL的主机部分: string pattern = @"^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)";
  • 匹配URL的路径部分: string pattern = @"(?:https?:\/\/)?(?:www\.)?[^\/]+(\/[^#?]+)";

示例代码

示例代码,演示如何在C#中使用这些正则表达式。

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string text = "Example text with some special patterns: 123-456, abc@def.com, http://example.com";

        // 匹配带连字符的单词
        string pattern = @"\b\w+-\w+\b";
        MatchCollection matches = Regex.Matches(text, pattern);

        Console.WriteLine("匹配带连字符的单词:");
        foreach (Match match in matches)
        {
            Console.WriteLine(match.Value);
        }

        // 匹配URL的主机部分
        pattern = @"^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)";
        Match matchUrl = Regex.Match(text, pattern);

        Console.WriteLine("\n匹配URL的主机部分:");
        Console.WriteLine(matchUrl.Value);
    }
}

在这个示例中,我们展示了如何使用正则表达式来匹配带连字符的单词和URL的主机部分。可以根据自己的需求进行修改和扩展。

总结

通过对这些正则表达式进行分类,我们可以更方便地找到适合当前需求的正则表达式。在实际开发中,正则表达式不仅可以简化代码,还能提高程序的执行效率和可维护性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部