c#仅在匹配后追加一次选择

时间:2015-04-30 14:56:13

标签: c# regex

我想要附加到richtextbox。我可以追加,但在找到这个词之后,它会继续追加多次。我想要做的是找到关键字,选择文本,然后只附加到richtextbox一次。这是代码:

        var Reg = new Regex(@"(\<\?)");
        var Matches = Reg.Matches(text);
        if (Matches.Count > 0)
        {
            foreach (Match mOne in Reg.Matches(text))
            {
                this.richTextBox1.Select(mOne.Groups[1].Index + firstCharIndex, mOne.Groups[1].Length);
                this.richTextBox1.SelectionColor = Color.Azure;
                this.richTextBox1.AppendText("?>");
            }
        }

如何选择我的文字并在选择后只追加一次?

3 个答案:

答案 0 :(得分:1)

 var Reg = new Regex(@"(\<\?)");
 var Matches = Reg.Matches(text);
 if (Matches.Count > 0)
 {
     var mOne = Matches.OfType<Match>().First();
     this.richTextBox1.Select(mOne.Groups[1].Index + firstCharIndex, mOne.Groups[1].Length);
     this.richTextBox1.SelectionColor = Color.Azure;
     this.richTextBox1.AppendText("?>");
 }

答案 1 :(得分:0)

添加

break;

追加后。

答案 2 :(得分:0)

为什么要找一个复杂的答案:

String result = Regex.Replace(input, @"(\<\?)", "$1" + textToAppend);

&#34; $ 1和#34;代表正则表达式的第一组。 在正则表达式中,一个组是一对括号

它会在比赛后直接追加文字

如果您的输入字符串是:"<?php"

结果内容为:"<??>php"