在word中的空格之间删除两个或多个空

时间:2014-11-10 04:39:01

标签: c# asp.net regex

我想用C#中的短划线替换单词in中的任何空格。但我的问题是当我想要删除样本字符串中的空格时:

"a  b"

"a    b"

当我尝试这个时,我得到了这个结果:

"a--b""a---b"

如何在单词之间添加任何空格?

像这样:

"a b"

"a-b"

4 个答案:

答案 0 :(得分:3)

你可以使用如下

string xyz = "1   2   3   4   5";
xyz = string.Join( "-", xyz.Split( new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries ));

参考

  1. How do I replace multiple spaces with a single space in C#?
  2. How to replace multiple white spaces with one white space

答案 1 :(得分:2)

您可以在此处使用Regex.Replace

Regex.Replace("a    b", @"\s+", "-");
如果按顺序找到一个或多个空格,

\ s 会查找空格的space + 计数。该模式将被匹配和替换。

答案 2 :(得分:2)

这可以通过许多方法来完成。使用正则表达式:

    string a = "a         b   c de";
    string b = Regex.Replace(a, "\\s+", "-");             

或者如果你不想使用正则表达式,这是一个函数,它将取一个字符串并将字符替换为参数并返回格式化的字符串。

    public string ReplaceWhitespaceWithChar(string input,char ch)
    {
        string temp = string.Empty;
        for (int i = 0; i < input.Length; i++)
        {

            if (input[i] != ' ')
            {
                temp += input[i];
            }
            else if (input[i] == ' ' && input[i + 1] != ' ')
            {
                temp += ch;
            }
        }
        return temp;
    }        

答案 3 :(得分:0)

您可以将此代码用于您的要求

        string tags = "This           sample";
        string cleanedString = System.Text.RegularExpressions.Regex.Replace(tags, @"\s+", "-");

        Response.Write(cleanedString);

结果将是:

"This-sample"

我希望它对你有用。