替换字符串中的特定重复字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换字符串中的特定重复字符相关的知识,希望对你有一定的参考价值。
我有像"aaa\\\\\\\\test.txt"
这样的字符串。
如何用一个\\
替换所有重复的\\
字符?
我试过了
pPath = new Regex("\\2,").Replace(pPath, Path.DirectorySeparatorChar.ToString());
哪个匹配http://regexstorm.net/tester但似乎没有在我的程序中做的技巧。
我在Windows上运行这个,所以Path.DirectorySeparatorChar
是一个\\
。
答案
使用new Regex(@"\\2,")
,其余的相同。
您需要在正则表达式中实际保留反斜杠转义,因此您需要生成一个带有两个反斜杠的字符串。生成正确的C#字符串文字的两种等效技术是@"\\2,"
或"\\\\2,"
这两个字符串文字都是字符串\\2,
,它是正确的正则表达式。您的正则表达式要求两次出现一个反斜杠字符,并且必须转义反斜杠字符。冒着迂腐的风险,如果你想替换两个a
字符,你会使用正则表达式a2,
,如果你想替换为\
字符,你会使用正则表达式\\2,
因为\\
是匹配单个的正则表达式\
。像泥一样清楚? :)
另一答案
在正则表达式中不是半神,我会使用StringBuilder并执行以下操作:
string txt = "";
int count = 0;
StringBuilder bldr = new StringBuilder();
foreach(char c in txt)
if (c == '\')
count++;
if (count < 3)
bldr.Append(c);
else
count = 0;
bldr.Append(c);
string result = bldr.ToString();
以上是关于替换字符串中的特定重复字符的主要内容,如果未能解决你的问题,请参考以下文章