C#之正则表达式
2016-01-27 20:51
519 查看
问题:过滤数据中的敏感信息。
解决:正则表达式筛选敏感信息--》替换敏感信息。
代码:
解决:正则表达式筛选敏感信息--》替换敏感信息。
代码:
/// <summary> /// 修改错误返回的描述内容 /// </summary> /// <param name="redata">返回的Json</param> /// <returns></returns> public static string ChangeError(string redata) { string restr = redata; #region 合法性验证 //Regex()的第一个参数是正则表达式 Regex reg = new Regex("\"RESULT_CODE\":\"1\"", RegexOptions.IgnoreCase);//操作失败 //Match()的第一个参数是需要匹配的字段 Match match = reg.Match(redata); Regex reg_s = new Regex("\"RESULT_DESC\":\"\\*\\S*\\*", RegexOptions.IgnoreCase);//可显示的描述 Match match_s = reg_s.Match(redata); //Captures:所有匹配的集合 //Count:集合数量 if (match.Captures.Count > 0) { if (match_s.Captures.Count == 0)//修改敏感信息 { Regex reg_r = new Regex("\"RESULT_DESC\":\".*?\"", RegexOptions.IgnoreCase); //Replace替换所有匹配的字段 //第一个参数:需要匹配的字段 //第二个参数:正则表达式 //第三个参数:替换文本,即用该文本替换掉匹配的字段 restr = Regex.Replace(redata, "\"RESULT_DESC\":\".*?\"", "\"RESULT_DESC\":\"操作失败\"", RegexOptions.IgnoreCase); } else//取消“*”,因为在返回信息中带在“*”中间的信息是可以显示的,如“*XXX*”。 { string desc = match_s.Groups[0].Value.ToUpper().Replace("*", ""); restr = Regex.Replace(redata, "\"RESULT_DESC\":\"\\*\\S*\\*", desc, RegexOptions.IgnoreCase); } } #endregion return restr; }PS:MatchCollection是所有匹配成功的集合。Match是单个。
相关文章推荐
- C#实时读取数据----局部页面刷新【转】
- C# 特性
- C# 将excel表格嵌入到Word中
- C# 将excel表格嵌入到Word中
- c# AES加解密并转ASCII码
- C#窗口传值及方法调用1--通过静态方法实现
- C#各种数组直接的数据复制/转换
- 【C#】改变物体顺序
- lock关键字只不过是C#提供的语法糖
- c#学习笔记——C#基础(一)
- C#在数据层过滤属性中的主键
- C# 友元函数
- c# internal
- 以逗号分隔的字符串,剔除重复的字符
- C# 条形码识别
- c#获取当前年的周数,当前月的天数
- C#导出EXCEL的几种方法
- C# 导出数据到Excel模板中
- C#版机房重构登录(不完整版)
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别