繁体   English   中英

如何用单个字符替换许多特殊字符,包括空格?

[英]How can i replace many special character including white space with single character?

如何用单个字符替换许多特殊字符,包括空格?

除非它是一个复杂的替换操作,否则您可以使用替换功能:

text = text.Replace("many special character", "a");

上面的代码将序列“许多特殊字符”替换为单个字符“ a”

我不确定您要问的是什么,但是我猜是这样的( 另请参见ideone.com ):

var text = "Really?????   That...  is...  AWESOME!!!";

Console.WriteLine(Regex.Replace(text, @"([\s\p{P}])\1+", "$1"));
// prints "Really? That. is. AWESOME!"

本质上,这使用正则表达式来匹配某些字符的任何连续序列,并将其替换为该字符的一次出现。

这是正则表达式的元素:

  • \\s是空格字符类
  • \\p{P}是标点符号类
  • [\\s\\p{P}]是两个字符类的并集
  • (...)是创建反向引用的捕获组
  • \\1+是匹配的一个或多个的尝试( +什么) \\1匹配
  • $1替换字符串中的\\1匹配项

参考文献

相关问题

似乎您想用一个字符替换特殊字符的任何组合。 如果您不想使用正则表达式,则可以执行以下操作:

char[] specialChars = new char[] { '\n', '\t', '\r', 'X' }; // newline, tab, carriage return and uppercase X for example
string myString = " hello\tworld!\t\tXTest";

// replace all special chars with space
foreach (char specialChar in specialChars) myString = myString.Replace(specialChar, ' ');

// now reduce all spaces: this will loop until there's only one space each
while (myString.Contains("  ")) myString = myString.Replace("  ", " ");

// now change to target character
myString = myString.Replace(" ", "_");

这将使用“ helloworld!XTest”并给出_hello_world!_Test。

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM