コード例 #1
0
ファイル: RTFFormatter.cs プロジェクト: zhoufengzd/DotNet
        public static string HighLight(string srcText, Dictionary <Color, IEnumerable <string> > colorKeywords)
        {
            RTFFormatter fmt = new RTFFormatter();
            Dictionary <string, Color> keyWordColorMap = new Dictionary <string, Color>();

            foreach (KeyValuePair <Color, IEnumerable <string> > kv in colorKeywords)
            {
                foreach (string keyWord in kv.Value)
                {
                    keyWordColorMap.Add(keyWord, kv.Key);
                }
            }

            StringBuilder buffer = new StringBuilder();

            buffer.Append(fmt.WriteHeader());

            string pattern = string.Format(@"\b({0})\b", Delimiter.ToString(keyWordColorMap.Keys, "|"));

            buffer.Append(Regex.Replace(srcText, pattern,
                                        delegate(Match m) { return(fmt.HighLight(m.Value, keyWordColorMap[m.Value])); }));

            buffer.Append(fmt.WriteFooter());
            return(buffer.ToString());
        }
コード例 #2
0
ファイル: RegexPro.cs プロジェクト: zhoufengzd/DotNet
        public static string ReplaceMultipleWord(string text, Dictionary <string, string> replacements)
        {
            string pattern = string.Format("\b({0})\b", Delimiter.ToString(replacements.Keys, "|"));

            return(Regex.Replace(text, pattern, delegate(Match m) { return replacements[m.Value]; }));
        }