替换字符串中第一个单词之前的空格,然后删除多余的空格

本文关键字:空格 删除 多余 然后 字符串 第一个 单词之 替换 | 更新日期: 2023-09-27 18:32:10

我有这样的字符串:

string stuff = "    this    is    something you could    use one day";

我正在使用以下函数来删除多余的空格:

private string removeThem(string str) { 
    if (str!= null){
        return  Regex.Replace(str, @"'s+", " "); 
    }else{
        return "";
    }
}

所以在应用该功能后,我得到:

" this is something you could use one day"

但我想要:

"this is something you could use one day"

怎么办?

替换字符串中第一个单词之前的空格,然后删除多余的空格

运行Regex.Replace()后,您可以轻松地运行Trim()

string str = str.Trim();

但是,如果您希望单个正则表达式删除连续空格修剪尾随空格,则可以尝试以下正则表达式:

^'s+|'s+$|'s+(?='s)

一无所有。

^'s+匹配字符串开头的所有空格;

's+$匹配字符串末尾的所有空格;

's+(?='s)将匹配所有连续空格并留下一个空格。

我会完全避免正则表达式 - 它们几乎总是难以维护。如果有更直接的选择,我会使用它。

这个怎么样:

private string removeThem(string str)
{ 
    return String.Join(" ", (str ?? "").Split(new [] { ' ' },
        StringSplitOptions.RemoveEmptyEntries));
}