[英]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
匹配项 试试Regex.Replace
http://msdn.microsoft.com/zh-CN/library/aa332127(v=VS.71).aspx
似乎您想用一个字符替换特殊字符的任何组合。 如果您不想使用正则表达式,则可以执行以下操作:
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.