2 回答
![?](http://img1.sycdn.imooc.com/545868190001d52602200220-100-100.jpg)
TA贡献1871条经验 获得超13个赞
您将需要一个正则表达式 (regexp)。这里的替换规则是
词界
23
词界
所以你的代码看起来像这样
var result = Regex.Replace(input, @"\b23\b", "X");
另一种方法是拆分字符串,替换匹配元素并加入新字符串>
var result = string.Join(";", input.Split(";").Select(v => v == "23" ? "X" : v));
更新:更新字典中的值
假设您知道密钥,这很容易:
myDict["thekey"] = Regex.Replace(myDict["thekey"], @"\b23\b", "X");
如果您想对所有项目进行此替换,我会这样做,但我不确定这是否是最好的解决方案:
[Fact]
public void Replace_value_in_dict()
{
// given
var mydict = new Dictionary<string, string>
{
{ "key1", "donothing" },
{ "key2", "23;32;323;34;45" },
};
// when
var result = mydict
.Select(kv => (kv.Key, Regex.Replace(kv.Value, @"\b23\b", "X")))
.ToDictionary(x => x.Item1, x => x.Item2);
// then
Assert.Equal(result, new Dictionary<string, string>
{
{ "key1", "donothing" },
{ "key2", "X;32;323;34;45" },
});
}
![?](http://img1.sycdn.imooc.com/54584d560001571a02200220-100-100.jpg)
TA贡献1802条经验 获得超10个赞
你应该使用正则表达式
var x="23;32;323;34;45";
var res = Regex.Replace(x, @"\b23\b", "x");
Console.WriteLine(res);
- 2 回答
- 0 关注
- 111 浏览
添加回答
举报