C#学习13——正则表达式

一、正则表达式

一种匹配输入文本的模式,是由特殊字符组成,用于匹配字符串中的字符组合。

二、正则表达式有哪些?

1.Regex 类(引入System.Text.RegularExpressions;)

Regex 类用于表示一个正则表达式。

1)Regex.Match(inputString, "pattern");

返回第一个匹配项(即只找第一个)。

cs 复制代码
string input = "123abc456";
Match match = Regex.Match(input, @"\d+");

if (match.Success)
{
    Console.WriteLine(match.Value); // 输出: 123
}
2)Regex.Matches(...)

返回所有匹配项(全部找到)。

cs 复制代码
string input = "123abc456def789";
MatchCollection matches = Regex.Matches(input, @"\d+");

foreach (Match match in matches)
{
    Console.WriteLine(match.Value); // 输出: 123, 456, 789
}
3)Regex.IsMatch(...)

当你不需要具体匹配内容,只要知道是否"存在匹配"即可。

cs 复制代码
string input = "abc123xyz";
bool hasDigits = Regex.IsMatch(input, @"\d+");

Console.WriteLine(hasDigits); // 输出: True
4)Regex.Replace(...)

替换匹配到的内容为指定字符串。

eg1:

替换所有数字 Regex.Replace(text, @"\d+", "*")

eg2:

cs 复制代码
string input = "电话:123-456-7890,邮箱:test@example.com";

// 替换所有数字为 *
string result1 = Regex.Replace(input, @"\d", "*");
Console.WriteLine(result1);
// 输出:电话:***-***-****,邮箱:test@example.com

// 替换所有邮箱地址为 [隐藏]
string result2 = Regex.Replace(input, @"\b[\w.-]+@[\w.-]+\.\w+\b", "[隐藏]");
Console.WriteLine(result2);
// 输出:电话:123-456-7890,邮箱:[隐藏]
5)Regex.Split(...)

根据正则表达式匹配内容,将字符串分割成多个部分。

cs 复制代码
string input = "apple, banana; orange|grape";

// 按照非单词字符(逗号、分号、竖线)进行分割
string[] parts = Regex.Split(input, @"[,\s;|]+");

foreach (string part in parts)
{
    Console.WriteLine(part);
}
// 输出:
// apple
// banana
// orange
// grape

6.区别:

方法 返回类型 是否返回匹配内容 是否修改原字符串 主要用途

Match(...) Match ✅ 是(第一个) ❌ 否 获取第一个匹配项

Matches(...) MatchCollection ✅ 是(全部) ❌ 否 获取所有匹配项

IsMatch(...) bool ❌ 否 ❌ 否 判断是否匹配成功

Replace(...) string ❌ 否 ✅ 是 替换匹配内容

Split(...) string[] ❌ 否 ✅ 是 按匹配规则拆分字符串

相关推荐
殷忆枫2 分钟前
AI学习笔记三十三:基于Opencv的单目标跟踪
笔记·学习
一只乔哇噻14 分钟前
Java,八股,cv,算法——双非研0四修之路day24
java·开发语言·经验分享·学习·算法
晨非辰2 小时前
#C语言——刷题攻略:牛客编程入门训练(四):运算
c语言·开发语言·学习·学习方法·visual studio
键盘敲没电2 小时前
【iOS】KVO
学习·macos·ios·objective-c·cocoa
澄澈i3 小时前
设计模式学习[17]---组合模式
c++·学习·设计模式·组合模式
我命由我123454 小时前
Windows 操作系统 - Windows 设置始终使用 Windows 照片查看器打开图片
运维·windows·经验分享·笔记·学习·操作系统·运维开发
mailtolaozhao5 小时前
PPT写作五个境界--仅供学习交流使用
学习·ppt
Dxy12393102166 小时前
Python正则表达式使用指南:从基础到实战
开发语言·python·正则表达式
W.KN6 小时前
Spring 学习笔记
笔记·学习·spring
_Orch1d7 小时前
初识无监督学习-聚类算法中的K-Means算法,从原理公式到简单代码实现再到算法优化
python·学习·算法·机器学习·numpy·kmeans·聚类