1

我想从给定文本中找到第一个单词匹配并使用正则表达式替换为另一个单词。

考虑以下字符串作为示例文本

您的商品是哪种类型的?我想该项目不是字符串,如果是这样,您可以覆盖项目类中的 ToString() 方法并使用 jayant 的代码。

我想在其中搜索第一个“项目”单词并将其替换为文本“你好”。请记住,我只想替换第一个“项目”字,而不是全部。

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

你好是哪种类型的?我想该项目不是字符串,如果是这样,您可以覆盖项目类中的 ToString() 方法并使用 jayant 的代码。

我正在使用 C# 编程来做到这一点,如果可能的话,我更喜欢使用 Regex。

谁能帮我解决这个问题。

4

2 回答 2

4

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

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

ideone上看到

(尽管在这种情况下,您实际上并不需要 Regex,因为您正在搜索常量。)

于 2010-09-12T04:35:21.190 回答
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"));
于 2010-09-12T04:37:27.637 回答