在字符串中出现特定字符后,确保存在空格

时间:2010-01-09 10:40:43

标签: c#

如果有人可以帮我这个......

我有一个名为text的字符串。我需要确保在每次出现特定字符后“有一个空格。如果没有空格,那么我需要插入一个空格。

我不确定在c#中实现此目的的最佳方法,我认为正则表达式可能是要走的路,但我对正则表达式的知识不足以做到这一点......

如果有人可以提供帮助,我们将不胜感激。

2 个答案:

答案 0 :(得分:9)

// rule: all 'a's must be followed by space.
// 'a's that are already followed by space must
// remain the same.
String text = "banana is a fruit";
text = Regex.Replace(text, @"a(?!\s)", x=>x + " ");
// at this point, text contains: ba na na is a fruit

正则表达式a(?!\ s)搜索未跟随空格的“a”。 lambda表达式x => x +“”告诉替换函数替换任何出现的'a'没有后面的空格'a' 一个空格

答案 1 :(得分:1)

所以,假设你有你的字符串:

string text = "12345,123523, 512,5,23, 18";

我假设在每个逗号之后放置一个空格,后面没有空格。随心所欲地适应。

您可以使用正则表达式替换:

Regex.Replace(text, ",(?!\s)", ", ");

此正则表达式只搜索的逗号,后跟任何空格(空格,制表符等),并用相同的逗号和单个空格替换它。

我们可以做得更好,仍然:

Regex.Replace(text, "(?<=,)(?!\s)", " ");

使逗号保持不变,只用一个空格替换逗号和后续非空白字符之间的空格。基本上,如果需要,只需插入新空间。