从名片详细信息中提取名称

时间:2016-02-04 07:40:37

标签: java regex

有谁能告诉我如何从下面的细节中提取名称?

Singapore Polytechnic 

Daniel Rossey
Manager

66556652
test@gmail.com

我只想匹配名称“Daniel Rossey”并且下面的当前表达不起作用

^[A-z][A-z|\.|\s]+$

它也将匹配“经理”和“新加坡理工学院”。

请不要建议我使用下面这样的正则表达式:

\n[A-Z][A-Za-z ]+

这是因为这个表达式提取“Daniel Rossey”只是因为它出现在第3行,这对我来说不起作用,因为对于我的情况,名称并不总是属于第3行。

我希望形成一个正则表达式:

  • 匹配2个最多4个字的名称

  • 排除“理工学院”或“大学”字样

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以针对所述问题尝试此正则表达式:

^(?!.*\b(Polytechnic|University)\b) *[A-Za-z][A-Za-z.]*(?: +[A-Za-z.]+){1,3} *$

RegEx Demo

如果这些关键字出现在输入行的任何位置,那么

(?!.*\b(Polytechnic|University)\b)是否会使匹配失败。休息是为了匹配2-4个单词。