在C#中删除字符串中的某些空白

时间:2018-11-27 15:21:35

标签: c# string replace

我有一个如下字符串:

strMyString = "4654564-|@$@|-Jennifer Austin    -$@%@$-646565546-|@$@|-Dutchin Henry LLC    -$@%@$-444309386-|@$@|-Winston Cooper LLC   ";

我要在名称后删除空格。

我尝试使用

string.Replace(" ", string.Empty)

但这将删除字符串中的所有空白,我只想删除名称部分之后的空白。

我的最终输出应该是这样

strMyString = "4654564-|@$@|-Jennifer Austin-$@%@$-646565546-|@$@|-Dutchin Henry LLC-$@%@$-444309386-|@$@|-Winston Cooper LLC";

名称之间的空格应该完整。

有帮助吗?预先感谢。

5 个答案:

答案 0 :(得分:0)

    string strMyString = "4654564-|@$@|-Jennifer Austin    -$@%@$-646565546-|@$@|-Dutchin Henry LLC    -$@%@$-444309386-|@$@|-Winston Cooper LLC   ";
    string pattern = "\\s+-";
    string replacement = "-";
    string result = Regex.Replace(strMyString, pattern, replacement);

https://dotnetfiddle.net/luJHd3

答案 1 :(得分:0)

在您的评论之后,应该执行以下操作:

var newText = string.Join("-$@%@$", text.Split(new[] {"-$@%@$"}, 
                                               StringSplitOptions.None)
                                        .Select(t => t.TrimEnd()));

答案 2 :(得分:0)

        string strMyString = "4654564-|@$@|-Jennifer Austin    -$@%@$-646565546-|@$@|-Dutchin Henry LLC    -$@%@$-444309386-|@$@|-Winston Cooper LLC   ";
        var subStrings = strMyString.Split('-').ToList();
        var newSubstrings = new List<string>();
        subStrings.ForEach(substring => newSubstrings.Add(substring.Trim(' ')));
        var newString = string.Join("-",newSubstrings);
        Console.WriteLine(newString);

答案 3 :(得分:0)

假设模式是一组数字/名称对,内部用“-| @ $$ @ |-”分隔,而对用“-$ @%@ $-”分隔,这似乎可行:< / p>

 string input =
     "4654564-|@$@|-Jennifer Austin    -$@%@$-646565546-|@$@|-Dutchin Henry LLC    -$@%@$-444309386-|@$@|-Winston Cooper LLC   ";
 const string separator = "-$@%@$-";
 const string pattern = @"\s+-\$@%@\$-";
 var regex= new Regex(pattern);
 var firstPass = regex.Replace(input, separator);
 var result = firstPass.TrimEnd(' ');

运行后,result如下:

"4654564-|@$@|-Jennifer Austin-$@%@$-646565546-|@$@|-Dutchin Henry LLC-$@%@$-444309386-|@$@|-Winston Cooper LLC"

Regex取消了两对之间的分隔符,删除了分隔符之前的所有空格。然后,尾部空格仍然存在,因此我用TrimEnd

删除了空格

答案 4 :(得分:-1)

我能想到的最简单,最容易理解的解决方案是:

strMyString = strMyString.Replace(@"    -$@%@$", @"-$@%@$").TrimEnd(' ');

正如已经指出的那样,如果存在不同数量的空格,这将不起作用,这将是一个更好的解决方案:

RegexOptions options = RegexOptions.None;
Regex regex = new Regex("[ ]{2,}", options);
strMyString = regex.Replace(strMyString, "");