C#正则表达式匹配与替换字符串功能示例

C#正则表达式匹配与替换字符串功能示例

什么是正则表达式?

正则表达式是一种强大的文本匹配工具,它可以用来匹配、搜索和替换文本中符合特定模式的字符串。在C#中,可以使用System.Text.RegularExpressions命名空间下的正则表达式类来操作正则表达式。

正则表达式语法

以下是常用的正则表达式语法:

语法 说明
. 匹配任意单个字符
\d 匹配任意数字
\w 匹配任意字母或数字
* 匹配任意数量的前一个字符
+ 匹配至少一个前一个字符
? 匹配零个或一个前一个字符
[abc] 匹配字符串中的a、b或c
[^abc] 不匹配字符串中的a、b或c
() 分组匹配

正则表达式匹配方法

C#中的正则表达式匹配可用Regex.IsMatch()或Regex.Match()方法实现。

using System.Text.RegularExpressions;

string input = "hello world";
string pattern = "world";
bool isMatch = Regex.IsMatch(input, pattern);
Match match = Regex.Match(input, pattern);

Console.WriteLine(isMatch);  // 输出:True
Console.WriteLine(match.Value);  // 输出:world

正则表达式替换方法

C#中的正则表达式替换可用Regex.Replace()方法实现。

using System.Text.RegularExpressions;

string input = "hello world";
string pattern = "world";
string replacement = "universe";
string result = Regex.Replace(input, pattern, replacement);

Console.WriteLine(result);  // 输出:hello universe

示例:将字符串的部分替换为*

以下示例将字符串中的敏感信息替换为号,比如将手机号码中的中间4位替换为号。

using System.Text.RegularExpressions;

string input = "my phone number is 12345678900";
string pattern = @"(\d{3})\d{4}(\d{4})";
string replacement = "$1****$2";
string result = Regex.Replace(input, pattern, replacement);

Console.WriteLine(result);  // 输出:"my phone number is 123****8900"

其中,正则表达式@"(\d{3})\d{4}(\d{4})"表示匹配以3个数字开头和4个数字结尾,中间有4个数字的字符串。"$1****$2"表示用第一个分组的内容(即前3个数字)和第二个分组的内容(即后4个数字)分别拼接*号替换中间的4个数字。

示例:提取HTML中的文本内容

以下示例提取HTML代码中的文本内容,去除HTML标签。

using System.Text.RegularExpressions;

string input = "<html><body><h1>hello world</h1></body></html>";
string pattern = @"<[a-z]+>.+?</[a-z]+>";
string result = Regex.Replace(input, pattern, "");

Console.WriteLine(result);  // 输出:hello world

其中,正则表达式@"<[a-z]+>.+?<!--[a-z]+-->"表示匹配一对尖括号中包含任意小写字母的标签和它之间的文本内容,其中的问号表示懒惰匹配,即尽可能少地匹配到结束标签。Regex.Replace()方法将匹配到的标签和之间的内容替换为空字符串,即去除了标签。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#正则表达式匹配与替换字符串功能示例 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • Unity3D实现人物移动示例

    下面是详细的Unity3D实现人物移动示例攻略。 步骤一:创建场景和人物 首先,打开Unity3D编辑器,创建一个新的场景(File -> New Scene)。然后在场景中创建一个人物模型或导入一个已有的人物模型。 步骤二:添加角色控制器 为了让人物实现移动,我们需要在人物对象上添加一个角色控制器(Character Controller)。在Uni…

    C# 2023年6月3日
    00
  • CefSharp自定义缓存实现

    大家好,我是沙漠尽头的狼。 上文介绍了《C#使用CefSharp内嵌网页-并给出C#与JS的交互示例》,本文介绍CefSharp的缓存实现,先来说说添加缓存的好处: 提高页面加载加速:CefSharp缓存可以缓存已经加载过的页面和资源,当用户再次访问相同的页面时,可以直接从缓存中加载,而不需要重新下载和解析页面和资源,从而加快页面加载速度。 减少网络流量:使…

    C# 2023年5月4日
    00
  • C#使用Redis的基本操作

    C#使用Redis的基本操作 Redis是一个高性能键值数据库,和传统的Key-Value存储相比,它支持更多的数据结构,如: 字符串(String) 散列(Hash) 列表(List) 集合(Set) 有序集合(SortedSet) 在C#中,我们可以使用StackExchange.Redis库来操作Redis数据库。本篇文章将介绍C#使用Redis的基本…

    C# 2023年6月1日
    00
  • 在.NetCore中 DDD中基于mediatr实现领域事件并结合EFCore进行二次封装

    [源代码地址https://github.com/junkai-li/NetCoreKevin]基于NET6搭建跨平台WebApi架构支持单点登录、多缓存、自动任务、分布式、多租户、日志、授权和鉴权 、网关 注册与发现、CAP集成事件、领域事件、 docker部署 **首要要理解什么是领域事件?**领域事件是指发生在特定领域中的事件,是你希望在同一个领域中其…

    C# 2023年5月5日
    00
  • .NET 水晶报表使用代码

    下面是 “.NET 水晶报表使用代码” 的完整攻略: 1. 安装Crystal Reports 首先需要安装 Crystal Reports,这里简单介绍一下安装步骤: 在 Visual Studio 中,打开 “工具” -> “扩展和更新”。 在 “扩展和更新” 窗口中,选择 “联机” 选项卡。 搜索 “Crystal Reports”,并安装最新的…

    C# 2023年5月31日
    00
  • C#检查foreach判读是否为null的方法

    当我们使用foreach循环访问集合或数组时,必须确保集合或数组不为null,否则会抛出NullReferenceException异常。在C#中,有多种方式可以检查集合或数组是否为null,本篇攻略将带你了解其中的两种方法。 方法1:使用if判断 我们可以使用if条件语句来判断集合或数组是否为null。在使用foreach循环之前,先检查集合或数组是否为n…

    C# 2023年5月15日
    00
  • C#判断一个字符串是否包含另一个字符串的方法

    本文将为大家介绍C#中判断一个字符串是否包含另一个字符串的方法。 方法一:使用Contains()方法 使用C#的字符串类型中的Contains()方法,可以判断一个字符串是否包含其他某个字符串。该方法返回一个布尔值,如果被查询字符串包含在主字符串中,返回true;否则返回false。 string str1 = "hello world&quot…

    C# 2023年5月15日
    00
  • c# 计算时间间隔的简单方法(推荐)

    C# 计算时间间隔的简单方法(推荐) 在C#编程中,通常需要计算时间间隔。例如:计算程序运行时间、计算任务执行时间等等。下面展示一种简单但是实用的方法,可以便捷地计算时间间隔。 使用Stopwatch类 Stopwatch类是专门用于计时的类,和DateTime.Now, DateTime.Ticks等类有很大区别,能更加准确地计算时间间隔。下面介绍Stop…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部