从Given Text - Regex中找到第一个单词匹配

时间:2010-09-12 04:24:45

标签: c# regex word replace

我希望找到来自Given Text的First Word匹配,并使用Regex替换为另一个单词。

  

请将字符串视为示例文字

     

您的商品属于哪种类型?我想这个项目不是字符串,如果是的话   你可以覆盖ToString()方法   项目类和使用jayant的   代码。

我想在其中搜索第一个“item”字样,并用文字“hello”替换它。请记住,我只想替换第一个“项目”字而不是全部。

  

因此,上述文字的输出将类似于以下内容。

     

您的问候是哪种?我想这个项目不是字符串,如果是的话   你可以覆盖ToString()方法   项目类和使用jayant的   代码。

我正在使用C#编程来执行此操作,如果可能,我更愿意使用Regex。

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:4)

您可以将Regex.Replace()方法与第3个参数(最大替换次数)一起使用:

Regex rgx = new Regex("item");
string result = rgx.Replace(str, "hello", 1);

ideone

上查看

(虽然在这种情况下你并不真正需要正则表达式,因为你正在搜索常量。)

答案 1 :(得分:1)

如果你对非正则表达式替代品持开放态度,你可以做这样的事情

public static string ReplaceOnce(this string input, string oldValue, string newValue)
{
    int index = input.IndexOf(oldValue);
    if (index > -1)
    {
        return input.Remove(index, oldValue.Length).Insert(index, newValue);
    }

    return input;
}

//

Debug.Assert("bar bar bar".ReplaceOnce("bar", "foo").Equals("foo bar bar"));