0

我有这样的字符串:

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"

怎么做?

4

2 回答 2

4

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

string str = str.Trim();

但是如果你想要一个正则表达式来删除连续的空格修剪尾随空格,你可以试试这个正则表达式:

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

无所取代。

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

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

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

于 2013-09-21T06:26:37.360 回答
2

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

这个怎么样:

private string removeThem(string str)
{ 
    return String.Join(" ", (str ?? "").Split(new [] { ' ' },
        StringSplitOptions.RemoveEmptyEntries));
}
于 2013-09-21T06:36:30.367 回答