正则表达式解析一个人的名字?

时间:2010-03-03 23:04:59

标签: regex

这可能是一个艰难的(如果不是不可能的话),但任何人都可以想到一个能找到一个人名字的正则表达式,比如一份简历吗?我知道这不会100%准确,但我无法想出一些东西。

我们假设名称只在文档中显示一次。

6 个答案:

答案 0 :(得分:3)

不,你不能使用正则表达式。您唯一的机会是,如果文档始终采用相同的格式,您可以根据其周围的上下文找到该名称。但这可能不适合你。

如果您要求您的申请人在线提交简历,您可以提供单独的字段,以便他们输入您的姓名和您需要的任何其他信息,而不是尝试自动解析简历。

答案 1 :(得分:2)

忘掉它 - 认真。

或者希望从C Vitae先生那里得到很多申请

答案 2 :(得分:2)

根据我的经验,写了一些非常相似的东西(但很久以前),大约95%的简历都将这个人的名字作为第一行。您可能有一个非常宽松的正则表达式检查alpha,连字符,句点,并假设这是名称。

显然,如你所说,没有办法100%准确地做到这一点,但这很接近。

答案 3 :(得分:1)

除非您想要构建一个包含所有可能名称的表达式,或者一起使用,否则您所指的表达式不是“常规”,带有大写字母R.一个好的猜测可能是寻找最大的 - 文档中的字体单词。如果他们遵循的模式看起来像firstname-lastname,name-initial-name等,你可以称之为一个很好的猜测......

答案 4 :(得分:1)

这是一个非常棘手的问题。正则表达式必须匹配可能是某人姓名的两个单词。问题在于,例如,一些西班牙裔人可能有一个超过2个字的名字。另外,你如何定义两个单词来匹配一个名字?您会使用常见名字和姓氏字段的数据库吗?这可能有效,除非有人有一个不常见的名字。

我想起了一个关于COBOL老师在大学的故事告诉我一个亚洲血统的人,他的名字会破坏程序员为银行内部系统定义的每一条规则。他的名字是“O”。只是字母O。

确定正则表达式的唯一可靠的方法是,如果你有什么东西可以解决你的搜索问题;也许如果简历中的一行文字以“姓名:”开头,那么你就知道从哪里开始寻找。

tl;博士:人们的姓名和个人简历变化太大,无法通过正则表达式来分开。

答案 5 :(得分:0)

你可以像亚马逊那样做书籍概述:SIP。这需要人工进行一些事后的双重检查,但你可能会在那里找到这个人的名字。