【发布时间】:2015-08-29 03:05:06
【问题描述】:
假设我在 bash 数组中有一个全名,我想稳健地提取姓氏和非姓氏(如果存在,则为名字和中间名)。例如,我用下面三个例子来说明这个问题的复杂性。
x1=(John von Neumann)
x2=(Michael Jeffrey Jordan)
x3=(Michael Jordan)
有人有提取姓氏和非姓氏的好方法吗?谢谢。
【问题讨论】:
-
姓氏
+非姓氏=全名?这意味着您要提取全名? -
尝试:
\(([^)]*)进行全局匹配 -
“健壮”是你不会得到的。考虑一下一直以来最喜欢的Charles-Jean Étienne Gustave Nicolas de la Vallée-Poussin。 :)
-
这是我刚刚提到Falsehoods Programmers Believe About Names 的问题,并建议您不要尝试解析名称——如果可能和必要,请在数据输入期间获取姓氏。虽然可以解析特定文化的大多数名称,但总会有一定比例的错误。
-
@Cyrus 抱歉,已修复。