我需要一个C#解决方案来清理一些名称,删除任何空格或制表符,开头或结尾以及字符之间的,特定字母。如果单词的最后一个字母和第一个字母大小写相同,请删除空格。否则请留一个空格。
例子:
前: Rob ert Pla nt
后: Robert Plant
或者
前: Ro bert Plant
后: Robert Plant
请注意,由于o和b是相同的情况而删除了空间,但由于P是大写的而t是较低的,所以保留了t和P。
到目前为止,我能做的最好的事情是:
public static string RemoveMultiSpace(string input)
{
return Regex.Replace(input, @"\s+", " ");
}
static void Main(string[] args)
{
Console.Write(RemoveMultiSpace("Ro bert Plant"));
Console.ReadKey();
}
这是输出:Ro bert Plant
但是我需要像这样的输出:Robert Plant
您可以使用此正则表达式来检测在两边都有小写字母的空格:
(?<=[a-zA-Z])\s+(?=[a-z])|\s(?=\s)
它还会删除part中的重复空格\s(?=\s)
。
在代码中,它看起来像:
public static string RemoveMultiSpace(string input)
{
return Regex.Replace(input, @"(?<=[a-zA-Z])\s+(?=[a-z])|\s(?=\s)", "");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句