gpt4 book ai didi

C# 用 1 个空格替换多个空格,保留特殊字符

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:11 26 4
gpt4 key购买 nike

有一点问题,因为我必须将字符串转换成表格。我想删除多个空格,但不是全部。所以文本中的数据返回时中间有很多空格,如下所示:

 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE\r\n 
services 0 Disc \r\n
console 1 Conn \r\n
alinav 2 Disc \r\n
rdp-tcp 65536 Listen \r\n

我仍然想保留将定义我的行的\r\n\值,我想保留在列下合法的空值,我想保留定义列的空格。但我想删除我不想输入值的额外空格。

我试过:

output = Regex.Replace(output, @"\s{2,}", " ", RegexOptions.Multiline);

output = output.Replace(" ", " ");

但第一个只是删除所有内容(我需要和不需要的东西)。而第二个仍然留有太多空间。

谢谢。

最佳答案

你可以做两件事:

在正则表达式中显式使用空格\s 包括奇怪的字符,如 (\n, \r, \t,...),因此:

output = Regex.Replace(output, @" +", " ", RegexOptions.Multiline);

或者应用第二种方法直到收敛:

string s2 = output;
do {
output = s2;
s2 = s2.Replace(" "," ");
} while(output != s2);

在大多数情况下,第一种方法的性能优于第二种。这是因为第一种方法将所有子字符串与两个或更多空格组合在一起。正则表达式通常比简单的字符串替换慢一点,但如果字符串包含有很多空格的序列,第一种方法会更快。

关于C# 用 1 个空格替换多个空格,保留特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24923689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com