【发布时间】:2015-07-06 23:27:55
【问题描述】:
我们需要将全名转换为缩写名,其中输入的组合变化如下:
输入:[可选标题] [名字或首字母] [姓氏]
输出:[可选标题] [首字母] [姓氏]
- 安德鲁·史密斯先生
- 史密斯先生
- 史密斯
- 安德鲁·史密斯
在所有情况下,如上所示,输出将是 Mr A Smith(存在头衔)或 A Smith(不存在头衔)和我认为这最好使用 RegEx 来实现,尽管我不知道正确执行此操作的语法是什么。
我自己尝试了一些,但得到的结果好坏参半。
作为注释;名称“可能”包含特殊字符,并且没有人有中间名;这样我们就可以在列表中包含一个名为 Mr James O'Reilly-Bond 的人,这将导致 Mr J O'Reilly-Bond
这是用 C# 编写的
【问题讨论】:
-
这个问题不恰当,没有足够的例子,没有描述冲突的案例,没有发布代码,也没有指定语言。
-
它是用 C# 编写的,名称列表的示例数量几乎是问题的全部范围。
-
您无法区分名称和头衔,例如杜克
-
@MrBones 虽然这是正确的,但我们没有任何头衔/姓氏实例,这意味着杜克约翰逊将始终是姓氏/姓氏。 Andris 的 RegEx 示例(如下)已经过测试,完全符合我们的要求,适用于我们知道可能发生的所有可能组合。
-
我们怎么知道呢?这里有一大堆隐含的假设,这就是为什么我说这是一个不恰当的问题