由于您仅限于使用西式名称,因此我认为一些规则可以帮助您达到最佳状态:
- 如果出现逗号,请删除最左边的一个,然后删除所有内容。
- 继续从头开始删除单词,然后转换为小写并删除所有句号,它们属于集合,
{ mr mrs miss ms rev dr prof }并且您可以想到的任何其他词。使用标题“得分”表(例如[mr=1, mrs=1, rev=2, dr=3, prof=4]
,根据需要排序),记录得分最高的标题。 - 当单词属于集合
{ jr phd }或罗马数字的值大约为50或更小(/[XVI]+/
可能是一个足够好的正则表达式)时,请从末尾继续删除这些单词。 - 如果在步骤2中删除了一个或多个得分不为零的标题,请使用得分最高的一个。否则,请使用“先生”。或“太太” 根据提供的性别。
- 使用姓氏作为姓氏。
绝不可能保证正确解析“ John Baxter Smith”之类的名称,因为并非所有双管姓都使用连字符。“ Baxter Smith”是姓吗?还是“
Baxter”是中间名?我认为可以肯定地说中间名比双枪但不带连字符的姓相对普遍,这意味着最好默认使用姓氏作为姓氏。您可能还需要编译常见的双管姓氏列表,然后对此进行检查。



