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

时间:2013-09-21 06:18:20

标签: c# regex string

我有像:

这样的字符串
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"

怎么做?

2 个答案:

答案 0 :(得分:3)

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

string str = str.Trim();

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

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

替换为空。

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

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

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

答案 1 :(得分:2)

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

这个怎么样:

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