如何在c#中替换一些字符b / w字符串?

时间:2011-03-31 13:53:48

标签: c# string

如何在c#中替换一些字符b / w字符串?

假设

字符串是:1-2-5-7-8-9-10-15

我使用替换功能

当我用5

替换2

它还将15替换为12,因为5存在。

那我怎样才能得到正确的输出?

6 个答案:

答案 0 :(得分:7)

您可以使用:

yourString.Split("-").Select(s => Regex.Replace(s, "^5$", "2")).Aggregate((a,b) => a + "-" + b);

与此处的大多数其他答案相比,当需要替换的字符串位于输入字符串的开头或结尾时,这也处理了这种情况。

答案 1 :(得分:4)

new Regex(@"\b5\b").Replace("1-2-5-7-8-9-10-15", "2");

\b匹配单词边界。这意味着'-5-'将匹配,但'-15-'将不匹配。

它还将处理匹配位于字符串边缘并且两边都没有连字符的情况,例如: '5-'和'-5'。

答案 2 :(得分:3)

您需要将-5-替换为-2 -

答案 3 :(得分:2)

试试这个

yourString = yourString.Replace("-5-","-2-");

答案 4 :(得分:2)

你可以使用正则表达式替换并替换为像

这样的正则表达式

[^\d]*5[^\d]*匹配5旁边没有任何数字的

答案 5 :(得分:0)

你有分隔符吗?

E.g。如果你真的有1-2-5的字符串链接...你可以用-2替换'-5'。