c# 通过正则实现对文本一次性替换多个关键字(防止多次先后替换出现的结果变化带来的问题)

var replacements = new Dictionary<string, string>();
            foreach (var key in keys)
                replacements.Add(key, $"<span style='background-color:blue;color:white;'>{HTMLEncode(key)}</span>");

            //正则替换可以做到多个关键字一次替换,从而避免多次替换导致的叠加源字符串改变问题
            var pattern = string.Join("|", replacements.Keys.Select(Regex.Escape));
            var result = Regex.Replace(content, pattern, m => replacements[Regex.Unescape(m.Value)]);
            return result;

 

posted on   空明流光  阅读(184)  评论(2编辑  收藏  举报

相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示