分享一个自己项目中用到的.net中正则替换工具处理类(支持先用特征匹配内容整体模板,同时模板内对相关字内容进行替换)
2024-09-02 12:22:30
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions; namespace ConfigLab.Comp.DataType
{
/// <summary>
/// 功能简介:正则替换的封装处理
/// 创建时间:2020-6-26
/// 创建人:pcw
/// 博客:https://www.cnblogs.com/taohuadaozhu
/// 用法:
///RegReplaceWrapper rrp = new RegReplaceWrapper();
///rrp.setReplacementForMatchContext("abc", "123");
///MessageBox.Show(rrp.getReplaceResult("混淆代码前开始测试匹配abc,[abc],tabce, abc cab ", @"\[([a-zA-Z]+)\]"));
///MessageBox.Show(rrp.getReplaceResult("混淆代码前开始测试匹配abc,[abc],tabce, abc cab abc(); ", @"[^a-zA-Z0-9\u4e00-\u9fa5](abc)[^a-zA-Z0-9\u4e00-\u9fa5]"));
/// </summary>
public class RegReplaceWrapper
{
private string targetitem = "";
private string replacement = "";
/// <summary>
/// 设置纯粹的替换(不考虑模式和所属上下文)
/// </summary>
/// <param name="sTargetItem"></param>
/// <param name="sReplacement"></param>
public void setReplacementForMatchContext(string sTargetItem, string sReplacement)
{
this.targetitem = sTargetItem;
this.replacement = sReplacement;
}
private string setFormatOnMatch(Match match)
{
if (string.IsNullOrEmpty(this.targetitem) == false)
{
return match.Value.Replace(this.targetitem, this.replacement);
}
return match.Value;
}
public string getReplaceResult(string sSourceText, string sPattern, RegexOptions eRegexOptions = RegexOptions.Multiline)
{
try
{
return Regex.Replace(sSourceText, sPattern, new MatchEvaluator(setFormatOnMatch), eRegexOptions);
}
catch (Exception ex)
{ }
return sSourceText;
}
}
}
最新文章
- [C#] 剖析 AssemblyInfo.cs - 了解常用的特性 Attribute
- StartUML2.8破解
- .NET中的动态编译
- sql server 中删除表中数据truncate和delete的区别(转载自.net学习网)
- iOS 高效添加圆角效果实战讲解
- bzoj 1318: [Spoj744] Longest Permutation 智商题
- Javascript注意事项三【使用假值】
- 《Effect Java》学习笔记1———创建和销毁对象
- Windbg调试(关于句柄表的获取,32位)
- “认证发布”和“获取展示”,如何在 SharePoint 中正确使用 RSS Feed。
- PAT1064: Compelte Binary Search Tree
- SVN更新失败,提示locked 怎么破
- Hybrid App—Hybrid App开发模式介绍和各种开发模式对比
- PHP算法练习1:两数之和
- Windows上搭建安卓的Java开发环境
- 子页面调整父亲页面的iframe元素
- [NM]打开NetworkManager和wpa_supplicant的DEBUG接口
- linux下的“定时器”:crontab
- ACE .i .inl文件(转)
- Redis - 事务(multi,exec,watch,unwatch)
热门文章
- python不确定性计算之模糊动态聚类实验
- SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
- VS使用正则表达式删除程序中的空行
- Landau-Vishkin
- nrf9160 做modem—— 连接云(接入方式MQTT)
- 二、Kubernetes 概念介绍
- Codeforces 1670 E. Hemose on the Tree
- 我用EasyExcel优化了公司的导出(附踩坑记录)
- netty系列之: 在netty中使用 tls 协议请求 DNS 服务器
- django-environ学习