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

本文关键字:编辑 单词 文本 | 更新日期: 2023-09-27 18:22:35

假设我有一个文本:

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

你建议使用什么方法来逐个编辑单词"Jack",例如,我想对每个"Jack"进行特定的更改。我尝试过使用Remove()和Replace(),但这些方法会编辑文本中的所有"Jack"。

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

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喜欢骑自行车