【问题标题】:How can I edit particular word one by one in a text line?如何在文本行中逐个编辑特定单词?
【发布时间】:2015-11-18 23:06:20
【问题描述】:

假设我有一个文本:

“他叫杰克。杰克喜欢骑自行车”

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

【问题讨论】:

标签: c# string editing


【解决方案1】:

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 是:

他的名字是 Jack1。 Jack2喜欢骑自行车

【讨论】:

    猜你喜欢
    • 2017-03-23
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多