如何在文本行中逐个编辑特定单词?

时间:2015-11-18 23:06:20

标签: c# string editing

我们说我有一个文字:

"他的名字是杰克。杰克喜欢骑自行车"

您建议使用哪种方法来编辑单词" Jack"例如,我想逐一对每个" Jack"进行具体的更改。我尝试过使用Remove()和Replace(),但这些方法会编辑所有" Jack"在文中。

1 个答案:

答案 0 :(得分:2)

Regex.Replace(String, MatchEvaluator)可能就是您所需要的。在指定的输入字符串中,它将所有与指定正则表达式匹配的字符串替换为MatchEvaluator委托返回的字符串。
所以你的MatchEvaluator代表可以决定更换每一个" Jack"用。
例如:

string s = "His name is Jack. Jack likes to ride a bike";
int count = 0;
string s2 = Regex.Replace(s, "Jack", match => {
    count++;
    return count > 1 ? "Jack2" : "Jack1";
});

s2是:

  

他的名字是杰克1。 Jack2喜欢骑自行车