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 2024-01-15 22:09  空明流光  阅读(83)  评论(0编辑  收藏  举报

导航