我昨天发布了一个问题:See question here,关于保留某些字符之间的单个空格或制表符,同时将其从其他字符中删除。
为了避免混淆和扩展讨论,我正在重新发布问题的修改版本。
我需要一个C#解决方案来清理一些名称,删除任何空格或标签,前导或尾随以及特定字符或特定字母之间。如果单词的最后一个字母和第一个字母具有相同的大小写,则删除该空格。否则留一个空间。
以下是示例:
之前:Bo b Marley
之后:Bob Marley
或者
之前:B ob Mar ley
之后:Bob Marley
问题是,如果有Brian de Palma
或Oscar de la Hoya
这样的名字会怎样?
我需要一种方法来处理de
和la
或制作例外。
到目前为止:
public static string RemoveMultiSpace(string input)
{
return Regex.Replace(input, @"(?<=[a-zA-Z])\s+(?=[a-z])|\s(?=\s)", "");
}
static void Main(string[] args)
{
Console.Write(RemoveMultiSpace("Brian de Palma"));
Console.ReadKey();
}
输出:Briande Palma
代替Brian de Palma
。