我搜索过很多问题和答案但是,我只是表达了冗长而复杂的表情。现在我想替换字符串中的所有空格。我知道它可以通过正则表达式完成。但是,我没有足够的关于正则表达式的知识,以及如何使用它来替换所有的空白区域,以及#逗号(逗号)。我查了一些链接但是,我没有得到确切的答案。如果您有任何已发布的问题或答案的链接。请建议我。
我的字符串定义如下。
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行。并且所有行的格式都与上面的给定示例相同。所以,我将使用正则表达式而不是循环和递归函数调用。如果你有任何其他方法使这个过程比正则表达式更快,那么请建议我。
答案 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)