-2

假设输入一个包含全名的字符串。全名非常多样化 - 即。乔布洛格斯、乔布洛格斯-菲利普斯、乔布洛格斯菲利普斯、乔布洛格斯亚当斯菲利普斯、乔范登布洛格斯、乔范德布洛格斯。

我想匹配我称之为“中间名”的东西。这是第一个和最后一个空格之间的所有内容。也就是说,如上所述 - “Bloggs Adams”,“van den”和“van-der”。带有连字符的名字是完整的姓氏。什么是正则表达式?

PS。我知道名称中的文化多样性,例如。“van der”实际上不是中间名,而是姓氏的开头。因此,如果在这个正则表达式中有内置的逻辑来适应,这将有所帮助。否则,我想假设:

  • 名字 - 直到第一个空格的所有内容。
  • 中间名 - 从第一个空格到最后一个空格。
  • 姓氏 - 从最后一个空格到结尾。

非常感谢。

4

1 回答 1

2

用这个:

^(\S+)\s+(.*\b)\s+(\S+)$

第一个捕获组是名字,第二组是中间名,第三组是姓氏。

于 2015-04-19T13:16:34.710 回答