C#之正则表达式
来源:互联网 发布:php exchange 发邮件 编辑:程序博客网 时间:2024/05/23 19:13
问题:过滤数据中的敏感信息。
解决:正则表达式筛选敏感信息--》替换敏感信息。
代码:
/// <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是单个。
0 0
- C#之正则表达式
- C#之正则表达式
- C#控件之正则表达式
- C# JavaScript之 正则表达式
- C#正则表达式之Ismatch()
- c#拾遗之正则表达式
- C#之正则表达式验证
- C#学习之----正则表达式
- C#正则表达式之字符替换!...
- C#正则表达式之过滤掉双引号...
- C#学习之正则表达式基础
- C#正则表达式之贪婪模式
- C#正则表达式之单词边界
- C#学习笔记之正则表达式
- C#基础之字符串与正则表达式
- 《C#编程之道》 之 使用正则表达式分解字符串
- C#中的正则表达式
- 常用C#正则表达式
- hdoj-2082 找单词【母函数】
- 在使用sudo命令时如何不用输入密码或减少输入的次数?
- 正则表达式要点
- 函数局部变量返回
- 正则表达式学习-网站
- C#之正则表达式
- 会“遗传”的五大坏习惯,为了孩子改掉吧!
- 2016.01.27--html5第六天之css
- 01-linux指令学习记录
- azkaban web-server源码解析
- unity3d出版本时出现的图片失真(图片模糊)
- HDU1004
- HDU——2067小兔的棋盘(卡特兰数/DP)
- POJ2251 三维的bfs