基于正则表达式的颜色字符

时间:2012-10-12 11:39:47

标签: c# regex windows winforms richtextbox

我是.Net初学者。我想根据所选的正则表达式为富文本框中的某些字符着色。怎么做?

像:

if (Regex.IsMatch(richTextBox, @"^[a-m]{1}$"))
{
   ??? //coloring that particular character of richTextBox
}

我应该写什么?可以使用标签完成相同的工作吗?

2 个答案:

答案 0 :(得分:1)

如果你想迭代所有比赛。不确定Regex.Matches是否会返回null,因此我检查了结果。

 MatchCollection matches = Regex.Matches(rtb.Text, @"^[a-m]{1}$");
 if (matches != null && matches.Count > 0)
 {
     foreach (Match m in matches)
     {
         rtb.Select(m.Index, m.Length);
         rtb.SelectionColor = Color.Blue;
     }
 }

答案 1 :(得分:0)

您可以尝试将ParagraphRun s

一起使用
Paragraph para = new Paragraph {
    Foreground = Brushes.Red,
};
para.Inlines.Add(new Bold(new Run(matchingString)));
para.Inlines.Add(new Run(regularText));
myRichTextBox.Document.Blocks.Add(para);