-1

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

喜欢:

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

我应该在里面写什么?可以用标签做同样的事情吗?

4

2 回答 2

2

如果要遍历所有匹配项。不确定 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;
     }
 }
于 2012-10-12T11:52:36.243 回答
0

您可以尝试将Paragraphs 与Runs一起使用

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);

ETC

于 2012-10-12T11:52:37.460 回答