C#开发基础之100个常用的C#正则表达式

前言

正则表达式是处理字符串的强大工具,特别是在文本搜索、替换和验证中。本文将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#中使用这些正则表达式。

csharp 复制代码
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的主机部分。可以根据自己的需求进行修改和扩展。

总结

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

相关推荐
dazhong201213 分钟前
PLSQL 客户端连接 Oracle 数据库配置
数据库·oracle
了一li2 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
Java Fans2 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手3 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
码农君莫笑3 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
别致的影分身3 小时前
使用C语言连接MySQL
数据库·mysql
鲤籽鲲4 小时前
C# Random 随机数 全面解析
android·java·c#
京东零售技术5 小时前
“慢”增长时代的企业数据体系建设:超越数据中台
数据库
sdaxue.com5 小时前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
数据库·github·网站·帝国cms·认证码