替换字符串中的特定重复字符

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();

以上是关于替换字符串中的特定重复字符的主要内容,如果未能解决你的问题,请参考以下文章

Python - 正则表达式不替换目录字符串[重复]

如何替换文件中的特定字符

替换字符串中的特定单词(Python)

替换跳过特定域扩展的 PHP 字符串中的字符

替换字符串中的字符[重复]

用特定逻辑替换字符串中的字符