当前位置:首页 > C# > 正文

C#正则表达式完全指南(正则表达式基础语法与实战入门)

在C#开发中,处理文本数据是常见任务。无论是验证用户输入、提取信息还是替换内容,C#正则表达式都是一个强大而高效的工具。本教程将带你从零开始掌握正则表达式基础语法,即使你是编程小白,也能轻松上手!

C#正则表达式完全指南(正则表达式基础语法与实战入门) C#正则表达式 正则表达式基础语法 C#字符串匹配 正则表达式入门教程 第1张

什么是正则表达式?

正则表达式(Regular Expression,简称 Regex)是一种用于匹配字符串的模式。它由一系列字符和特殊符号组成,可以用来搜索、替换或验证文本。

在C#中使用正则表达式

C#通过 System.Text.RegularExpressions 命名空间提供对正则表达式的支持。最常用的类是 Regex

基本用法示例

using System;using System.Text.RegularExpressions;class Program{    static void Main()    {        string input = "我的邮箱是 user@example.com,请联系我!";        string pattern = @"\w+@\w+\.\w+";        // 使用 Regex.IsMatch 判断是否匹配        bool isMatch = Regex.IsMatch(input, pattern);        Console.WriteLine($"是否包含邮箱:{isMatch}"); // 输出:True        // 使用 Regex.Match 获取匹配结果        Match match = Regex.Match(input, pattern);        if (match.Success)        {            Console.WriteLine($"找到邮箱:{match.Value}"); // 输出:user@example.com        }    }}

正则表达式基础语法规则

掌握以下常用符号,你就掌握了C#字符串匹配的核心:

  • .:匹配任意单个字符(除换行符)
  • \d:匹配任意数字(等价于 [0-9])
  • \w:匹配字母、数字或下划线(等价于 [a-zA-Z0-9_])
  • \s:匹配空白字符(空格、制表符、换行等)
  • *:前面的元素出现0次或多次
  • +:前面的元素出现1次或多次
  • ?:前面的元素出现0次或1次
  • {n}:前面的元素恰好出现n次
  • [abc]:匹配 a、b 或 c 中的任意一个
  • [^abc]:不匹配 a、b 或 c
  • ^:匹配字符串开头
  • $:匹配字符串结尾

转义字符很重要!

在C#中,反斜杠 \ 是转义字符。为了避免混淆,建议使用逐字字符串(verbatim string),即在字符串前加 @ 符号:

// 不推荐:需要双反斜杠string pattern1 = "\\d+";// 推荐:使用 @ 符号,更清晰string pattern2 = @"\d+";

常见应用场景

1. 验证手机号

string phonePattern = @"^1[3-9]\d{9}$";bool isValid = Regex.IsMatch("13812345678", phonePattern); // true

2. 提取所有URL

string text = "访问 https://www.example.com 或 http://test.org 获取更多信息";string urlPattern = @"https?://[\w\.-]+";foreach (Match m in Regex.Matches(text, urlPattern)){    Console.WriteLine(m.Value);}// 输出:// https://www.example.com// http://test.org

小贴士:调试你的正则表达式

正则表达式写错很常见。建议使用在线工具(如 regex101.com)测试你的模式,再粘贴到C#代码中。同时,给复杂正则添加注释,提高可读性。

总结

通过本篇正则表达式入门教程,你已经掌握了C#中正则表达式的基本语法和常用技巧。记住:多练习是掌握正则的关键!尝试用它解决实际问题,比如日志分析、数据清洗或表单验证,你会发现它是一个不可或缺的利器。

提示:本文涵盖的 C#正则表达式、正则表达式基础语法、C#字符串匹配 和 正则表达式入门教程 是开发者必须掌握的核心技能。