我从简历中提取电子邮件的正则表达式也是从这些简历中提取电话号码

My regular expression for extracting emails from resumes is also extracting phone numbers from these resumes

提问人:Paulo Sena 提问时间:11/7/2023 最后编辑:Peter MortensenPaulo Sena 更新时间:11/8/2023 访问量:102

问:

我创建了一个正则表达式来从简历中提取电子邮件。但是,它也从这些简历中提取电话号码。我该如何解决这个问题?Obs:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

例子:

number 5579999644373
email [email protected]

正确匹配:[email protected]

匹配不正确:[email protected]

Python 正则表达 式电子邮件 机器人框架

评论

1赞 AdrianHHH 11/7/2023
编辑问题以显示一些示例。包括 (1) 正确匹配、(2) 正确不匹配、(3) 不正确匹配和 (4) 不正确匹配。也许每个例子都有两个。
1赞 Barmar 11/7/2023
我不明白它是如何得到不正确的匹配的,它没有出现在示例输入中。
0赞 sln 11/7/2023
您必须使用更接近规范的更充实的电子邮件正则表达式。即便如此,边界信息文本中也存在 BLEED。这在自由格式文本中是无法做到的。让我用不同的术语来说,验证电子邮件的唯一方法是测试发送。简历该死。
0赞 Peter Mortensen 11/8/2023
什么是“Obs”?观察?观察?反对?一些德语单词?拉丁语?从字面上看是沃拉普克

答:

-1赞 jwP54 11/7/2023 #1

你的正则表达式正在疯狂运行。用更深思熟虑的角色类和更多的界限来驯服它。

  1. 匹配电子邮件前缀:
  • 其中许多字符在电子邮件中不被接受。

[a-z0-9!#$%&'+/=?^_{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_{|}~-]+)

确定模式将从哪里开始匹配,然后创建一个简洁的 char 类,并贪婪地匹配尽可能多的实例。

start here^ here is my custom class[a-zA-Z0-9+_.-] I am being very greedy+`

  1. 匹配 AT 符号

@

  1. 匹配域

(?:a-z0-9?\.)+a-z0-9?

  • 您不需要任何向前/向后看,也不需要说明模式何时应该停止匹配 ($)

这是一个用于匹配电子邮件的可靠正则表达式(来自 tutorialspoint):

^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$ https://www.tutorialspoint.com/checking-for-valid-email-address-using-regular-expressions-in-java

评论

1赞 InSync 11/7/2023
"这是一个用于匹配电子邮件的可靠正则表达式“:该正则表达式太简单了。请参阅如何使用正则表达式验证电子邮件地址? 对于真实的东西。
-1赞 Reilas 11/7/2023 #2

请尝试以下操作。

\b[\w.+-]+@[\w.-]+\b