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日

相关文章

  • C#实现控制Windows系统关机、重启和注销的方法

    在C#编程中,我们可以使用System.Diagnostics命名空间下的Process类来控制Windows系统的关机、重启和注销操作。 具体实现步骤如下: 1. 引入System.Diagnostics命名空间 首先,在代码文件的最上方添加以下代码,引入System.Diagnostics命名空间: using System.Diagnostics; 2…

    C# 2023年6月3日
    00
  • C# 串口通信

    这里浅说一下蓝牙与串口的区别:         蓝牙:连接以mac地址为主,显示名称可以更改,低功耗蓝牙还需要配置服务与特征(服务有读,写,可读可写区别) 特点:不同设备连接同一台蓝牙设备,mac地址与显示名称都是唯一的         串口:连接以端口名称为主,例如com1,com2,连接时需要配置参数较多 特点:不同设备接入同一个串口模块,显示的名称可能…

    C# 2023年5月5日
    00
  • C# Linq的Any()方法 – 确定序列中是否存在元素

    Any() 方法是 C# LINQ 中的一种用于判断集合中是否存在任何元素满足给定条件的方法。此方法的语法如下: bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate); 其中,source 是需要检查的集合,pr…

    C# 2023年4月19日
    00
  • PC 端微信扫码注册和登录实例

    下面我将为大家详细讲解“PC 端微信扫码注册和登录实例”的完整攻略。 准备工作 首先,你需要在自己的网站中添加微信扫码登录模块,可以使用第三方登录插件,例如“社会化登录”插件。在使用该插件时,需要先获取自己的应用 ID 和应用密钥等信息。 页面设计 添加微信登录模块后,需要在网站中添加注册和登录页面。可以使用 HTML 和 CSS 设计全新的页面,也可以使用…

    C# 2023年5月31日
    00
  • C# File.WriteAllText(string path, string contents):将指定文本内容写入文件

    当你需要将一段文本内容写入一个文件中时,可以使用 File.WriteAllText(string path, string contents) 方法。该方法将指定的文件路径和要写入的字符串作为参数,将字符串写入指定的文件中,覆盖原有的文件内容。如果文件不存在,则会被创建。 该方法的语法如下: public static void WriteAllText(…

    C# 2023年4月19日
    00
  • C#并发容器之ConcurrentDictionary与普通Dictionary带锁性能详解

    C#并发容器之ConcurrentDictionary与普通Dictionary带锁性能详解 引言 在多线程编程中,确保线程安全是至关重要的。在实现线程安全的过程中,我们可以使用锁、互斥量等同步机制。而在 .NET Framework 4 中,引入了一些并发容器,例如ConcurrentDictionary,可以帮助我们更方便地实现线程安全。那么,在使用Co…

    C# 2023年6月1日
    00
  • C# String字符串案例详解

    C# String字符串案例详解 在C#编程中,字符串常常是我们经常需要处理的数据类型之一。因此,对于string类型的操作和处理,是我们编程学习的重中之重。本文将带大家详细了解C# String字符串的应用实例及操作技巧。 1. 字符串的定义及基本操作 在C#中,String字符串是一种不可变的类型,即被创建之后,它的值就不能被修改了。以下是一些定义字符串…

    C# 2023年5月31日
    00
  • CPF 使用C#的Native AOT 发布程序的详细过程

    一、什么是 Native AOT 在C#语言中,通常使用JIT进行运行时编译以提升程序性能,但AOT(Ahead of Time)则是在编译时将C#代码编译成本地代码,运行时无需JIT,直接执行本地代码,从而提高了程序的启动速度和执行效率。同时,通过Native AOT可生成单独的可执行文件,无需安装.NET运行时环境。 二、如何使用 Native AOT …

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