例如:“我是字。将字符更改为新的字”
我想将“word”替换为“char”并将“char”替换为“word”
结果:“我是字符。将字更改为新字符”
对我来说非常重要
非常感谢。
答案 0 :(得分:3)
您可以使用正则表达式匹配两个单词,以便在同一个调用中替换它们。这样你可以避免多次替换相互干扰的问题:
str = Regex.Replace(str, "(char|word)", m => m.Groups[0].Value == "char" ? "word" : "char");
这很容易扩展到任何数量的替代品,否则会发生冲突。您还可以在正则表达式中添加\b
代码,使其仅匹配整个单词(而不是a
内的char
)。例如:
str = Regex.Replace(str, @"\b(a|char|word|new|my|to)\b", m => {
string s = m.Groups[0].Value;
return
s == "a" ? "new" :
s == "char" ? "word" :
s == "word" ? "char" :
s == "new" ? "a" :
s == "my" ? "mine" :
"with";
});
结果:
"I'm new char. change mine word with a char"
答案 1 :(得分:1)
如果你有3个眼镜,第一个和最后一个玻璃杯装满水而另一个玻璃杯是空的,你如何将水从玻璃杯1更换为玻璃杯3?这与你的问题是一样的。
首先将字更改为 to_replace (例如),而不是将字符更改为字并再次更改< strong> to_replace 到 char 。