用指定字符替换空格的正则表达式是什么?

时间:2014-03-04 07:27:59

标签: c# regex

我搜索过很多问题和答案但是,我只是表达了冗长而复杂的表情。现在我想替换字符串中的所有空格。我知道它可以通过正则表达式完成。但是,我没有足够的关于正则表达式的知识,以及如何使用它来替换所有的空白区域,以及#逗号(逗号)。我查了一些链接但是,我没有得到确切的答案。如果您有任何已发布的问题或答案的链接。请建议我。

我的字符串定义如下。

string sText = "BankMaster      AccountNo              decimal      To   varchar";

,结果应如下所示返回。

"BankMaster,AccountNo,decimal,To,varchar"

完整代码:

string sItems = Clipboard.GetText();
string[] lines = sItems.Split('\n');
for (int iLine =0; iLine<lines.Length;iLine++)
{
    string sLine = lines[iLine];
    sLine = //CODE TO REPLACE WHITE SPACE WITH ','
    string[] cells = sLine.Split(',');

    grdGrid.Rows.Add(iLine, cells[0], cells[1], cells[2], cells[4]);
}

其他详细信息

我在列表中有超过16000行。并且所有行的格式都与上面的给定示例相同。所以,我将使用正则表达式而不是循环和递归函数调用。如果你有任何其他方法使这个过程比正则表达式更快,那么请建议我。

5 个答案:

答案 0 :(得分:7)

string result = Regex.Replace(sText, "\\s+", ",");

\s+代表“捕获任何类型的所有连续空格”。

通过空白正则表达式引擎取消空间(),制表符(\t),换行符(\n)和插入符号(\r

答案 1 :(得分:1)

string a = "Some    text  with   spaces";
Regex rgx = new Regex("\\s+");
string result = rgx.Replace(a, ",");

Console.WriteLine(result);

上面的代码将用','字符

替换所有空格

答案 2 :(得分:0)

试试这个:

sText = Regex.Replace(sText , @"\s+", ",");

答案 3 :(得分:0)

试试这个:

string str = "BankMaster      AccountNo              decimal      To   varchar";
StringBuilder temp = new StringBuilder();
str=str.Trim(); //trim before logic to avoid any trailing/leading whitespaces.
foreach(char ch in str)
{
          if (ch == ' ' && temp[temp.Length-1] != ',')
            {
                temp.Append(",");
            }
            else if (ch != ' ')
            {
                temp.Append(ch.ToString());
            }
}
  Console.WriteLine(temp);

<强>输出:

BankMaster,AccountNo,decimal,To,varchar

答案 4 :(得分:0)