所以我的问题就是这个,比方说我有一个字符串:
a b c d e f g
我想删除b和c之间的任何空格或换行符,但保留其余部分。基本上上面的示例应该是这样的:
abcd e f g
我知道如何使用replace
方法替换整个字符串中的空格和换行符,但不知道如何对字符串的特定部分执行此操作。任何帮助将不胜感激!
编辑:(对于stefankmitph)
输入:
hello my name is martin
I am from Paris in France
当前输出:
hellomynameis martin I am from Paris in France
预期产出:
hellomynameis martin I am from Paris in France
为换行添加两个空格,我不知道为什么
答案 0 :(得分:1)
它应该摆脱前4个字母之间的空格和换行符。这封信没关系。
您可以使用正则表达式,将前四个字母与捕获组匹配,然后将它们用作替换:
var r = Regex.Replace("a b c d e f g", @"^(\w)\s*(\w)\s*(\w)\s*(\w)", "$1$2$3$4");
这个正则表达式有四个编号为1到4的组。这些组由字母组成,它们由零个或多个空格分隔。替换将捕获的组和位置放在一起,周围没有空格。
答案 1 :(得分:1)
使用LINQ:
string s = "a b c d e f g";
var split = s.Split();
string joined = string.Concat(split.Take(3)) + string.Join(" ", split.Skip(3));
第二个例子编辑:
string s = @"hello my name is martin
I am from Paris in France";
var split = s.Split(new[] {" ", Environment.NewLine}, StringSplitOptions.None);
string part1 = string.Concat(split.Take(3));
string part2 = string.Join(" ", split.Skip(3));
string joined = string.Format("{0} {1}", part1, part2);
这应该按预期工作。
答案 2 :(得分:1)