Php 如何在给定的字符串中找到人名?
我需要从一份文件(简历)中获取所有人的姓名(大卫、乔纳森、费迪南德)。在regex的帮助下,我可以获得电子邮件id和电话Php 如何在给定的字符串中找到人名?,php,laravel,Php,Laravel,我需要从一份文件(简历)中获取所有人的姓名(大卫、乔纳森、费迪南德)。在regex的帮助下,我可以获得电子邮件id和电话 $email = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i'; $phone = ^\(?\+?([0-9]{1,4})\)?[-\. ]?(\d{10})$ 但我如何找到我的名字?简历中详细信息的顺序可以是任何格式。我试着用wordsAPI做一些类似的事情 $word = WordsApi::
$email = '/[a-z0-9_\-\+]+@[a-z0-9\-]+\.([a-z]{2,3})(?:\.[a-z]{2})?/i';
$phone = ^\(?\+?([0-9]{1,4})\)?[-\. ]?(\d{10})$
但我如何找到我的名字?简历中详细信息的顺序可以是任何格式。我试着用wordsAPI做一些类似的事情
$word = WordsApi::word('name');
if($word->synonyms()==null)
{
$name = $word;
}
但不幸的是,它会为John、mathew、Fernandez等名字返回值。有什么特别的方法可以实现这一点吗?电话和电子邮件很容易找到,因为它们的格式非常标准,而且很容易识别。另一方面,名字并不像电话号码和电子邮件那样使用严格的格式 您可以尝试使用他们的电子邮件地址查找姓名。大多数人出于商业原因使用他们的名字/姓氏作为他们的电子邮件地址。许多公司在某些情况下使用首字母和姓氏,或者使用完整的首字母和姓氏 因此,如果你正在寻找约翰·史密斯,并且电子邮件是jsmith@gmail.com您可以使用PHP查找
smith
加上上上一个单词,直到下一个空格字符或行尾/开头
$email = 'jsmith@gmail.com'
$_name = substr($email, 1, strpos($email, '@')-1);
preg_match('/(\w+\s'.$_name.')/mi', $resume, $name);
这假定电子邮件格式为首字母姓氏。你需要正则表达式来测试全名的首字母,全名的首字母,等等,希望其中一个能给你一个名字 电话和电子邮件很容易找到,因为它们的格式非常标准,很容易识别。另一方面,名字并不像电话号码和电子邮件那样使用严格的格式 您可以尝试使用他们的电子邮件地址查找姓名。大多数人出于商业原因使用他们的名字/姓氏作为他们的电子邮件地址。许多公司在某些情况下使用首字母和姓氏,或者使用完整的首字母和姓氏 因此,如果你正在寻找约翰·史密斯,并且电子邮件是jsmith@gmail.com您可以使用PHP查找
smith
加上上上一个单词,直到下一个空格字符或行尾/开头
$email = 'jsmith@gmail.com'
$_name = substr($email, 1, strpos($email, '@')-1);
preg_match('/(\w+\s'.$_name.')/mi', $resume, $name);
这假定电子邮件格式为首字母姓氏。你需要正则表达式来测试全名的首字母,全名的首字母,等等,希望其中一个能给你一个名字 好的,在这种情况下。如果约翰·史密斯用这样的电子邮件怎么办js1985@gmail.com?@Navenkumar那么你就有点不走运了。正如我在回答中指出的那样,除了First、Last或Last、First之外,没有固定的书写标准。这使得从简历中挑选一个名字变得非常困难。好吧,在这种情况下。如果约翰·史密斯用这样的电子邮件怎么办js1985@gmail.com?@Navenkumar那么你就有点不走运了。正如我在回答中指出的那样,除了First、Last或Last、First之外,没有固定的书写标准。这使得从简历中挑选一个名字变得极其困难。