如果有人可以帮我这个......
我有一个名为text的字符串。我需要确保在每次出现特定字符后“有一个空格。如果没有空格,那么我需要插入一个空格。
我不确定在c#中实现此目的的最佳方法,我认为正则表达式可能是要走的路,但我对正则表达式的知识不足以做到这一点......
如果有人可以提供帮助,我们将不胜感激。
答案 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)", " ");
使逗号保持不变,只用一个空格替换逗号和后续非空白字符之间的空格。基本上,如果需要,只需插入新空间。