我的问题已经说明了我的问题..那么如何正确删除字符串中的所有额外空白?
想象一下破折号是空格。
my string =" [----------- na ---- me -----]"
输出="名称 - " (字符串末尾有一个空格)
我在Leave事件中使用了这段代码。
((Control)sender).Text = Regex.Replace(((Control)sender).Text, @"\s+", " ");
((Control)sender).Text.TrimEnd(' ');
答案 0 :(得分:2)
我想你可能会过度思考这个问题。
您是否考虑过使用字符串替换方法。
例如:
string s = "[ na me ]";
var s2 = s.Replace(" ", "");
Console.WriteLine(s);
Console.WriteLine(s2);
答案 1 :(得分:1)
看来你有一个错字。您的主要问题似乎是在致电Regex.Replace
时。仔细查看该行:" "
表示用一个空格替换空格序列。尝试将" "
更改为""
。
此外,((Control)sender).Text.TrimEnd(' ');
会返回一个新字符串,并且永远不会更新((Control)sender).Text
。也许您打算再次将结果分配给Text
?请记住,在C#中,字符串是不可变的。但是,通过将" "
更改为""
,您不再需要该行。
注意:此答案基于示例代码。但是,示例字符串和输出与示例代码不匹配。
答案 2 :(得分:1)
您可能正在运行\r\n
的空白,因此请使用此模式:[\s\r\n]+
以获取所有空格以及任何回车符和换行符。另外,要简明扼要地使用string.empty
代替""
作为替换文本。