如何在c#中替换一些字符b / w字符串?
假设
字符串是:1-2-5-7-8-9-10-15
我使用替换功能
当我用5
2
时
它还将15
替换为12
,因为5
存在。
那我怎样才能得到正确的输出?
答案 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'。