0

rithtextbox で Xml の本体部分とタグ部分を異なる色で強調表示しようとしています。

Regex regExp = new Regex("<[^>]+>");
foreach (Match match in regExp.Matches(richTextBox3.Text))
{
      richTextBox3.Select(match.Index, match.Length);
      richTextBox3.SelectionColor = Color.blue;
} 

regExp = new Regex("(?!<[^>]+>)");
foreach (Match match in regExp.Matches(richTextBox3.Text))
{
      richTextBox3.Select(match.Index, match.Length);
      richTextBox3.SelectionColor = Color.Green;
} 

問題は、ボディ部分(タグ以外)と一致しないことです

4

1 に答える 1

0

私は答えを得た ここに解決策があります

Regex regExp = new Regex("<[^>]+>");
MatchCollection a = regExp.Matches(richTextBox3.Text);
for(int i=0;i<a.Count;i++)
{
     richTextBox3.Select(a[i].Index, a[i].Length);
     richTextBox3.SelectionColor = Color.Blue;
     if (i < a.Count - 1)
     {
         if (a[i+1].Index-(a[i].Index + a[i].Length + 1) > 0)
         {
              richTextBox3.Select(a[i].Index + a[i].Length , a[i + 1].Index - (a[i].Index + a[i].Length));

              richTextBox3.SelectionColor = Color.Green;

         }
     }
}
于 2012-12-13T10:08:32.010 に答える