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;
}
}
}

最新文章

  1. [C#] 剖析 AssemblyInfo.cs - 了解常用的特性 Attribute
  2. StartUML2.8破解
  3. .NET中的动态编译
  4. sql server 中删除表中数据truncate和delete的区别(转载自.net学习网)
  5. iOS 高效添加圆角效果实战讲解
  6. bzoj 1318: [Spoj744] Longest Permutation 智商题
  7. Javascript注意事项三【使用假值】
  8. 《Effect Java》学习笔记1———创建和销毁对象
  9. Windbg调试(关于句柄表的获取,32位)
  10. “认证发布”和“获取展示”,如何在 SharePoint 中正确使用 RSS Feed。
  11. PAT1064: Compelte Binary Search Tree
  12. SVN更新失败,提示locked 怎么破
  13. Hybrid App—Hybrid App开发模式介绍和各种开发模式对比
  14. PHP算法练习1:两数之和
  15. Windows上搭建安卓的Java开发环境
  16. 子页面调整父亲页面的iframe元素
  17. [NM]打开NetworkManager和wpa_supplicant的DEBUG接口
  18. linux下的“定时器”:crontab
  19. ACE .i .inl文件(转)
  20. Redis - 事务(multi,exec,watch,unwatch)

热门文章

  1. python不确定性计算之模糊动态聚类实验
  2. SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
  3. VS使用正则表达式删除程序中的空行
  4. Landau-Vishkin
  5. nrf9160 做modem—— 连接云(接入方式MQTT)
  6. 二、Kubernetes 概念介绍
  7. Codeforces 1670 E. Hemose on the Tree
  8. 我用EasyExcel优化了公司的导出(附踩坑记录)
  9. netty系列之: 在netty中使用 tls 协议请求 DNS 服务器
  10. django-environ学习