使用正则表达式查找带有空格的无效电子邮件



我已经将多个文件扫描为pdf,我现在想使用正则表达式从这些文件中提取电子邮件。但是PDF有时在单词之间有空格,因为它的图像到文本的解释并不完美。无法重做扫描,因为我不再有纸质文件。

例如,这些是可能性:

example.email@gmail.com
example.email@g mail.com
example.email@ gmail.com
example.email @ gmail.com
example.email @ gmail .com
example.email @gmail .com
example.email @gm ail .com
example.email @ gmail . com
exa mple.email@gmail.com
exa mple.email @gmail.com
exa mple.email @ gmail.com
exa mple.email @gmail .com
exa mple.email @ gmail .com
exa mplemail @ gmail .com

我已经尝试了多个正则表达式,但我对正则表达式的了解太有限,无法找到所有解决方案。

我使用了 http://emailregex.com/的通用电子邮件正则表达式并添加了空格。

(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[x01-x08x0bx0cx0e-x1fx21x23-x5bx5d-x7f]|\[x01-x09x0bx0cx0e-x7f])*")@(?:(?:[a-zA-z0-9 ](?:[a-zA-Z0-9- ]*[a-z0-9])?.)+[a-zA-z0-9](?:[a-zA-z0-9-]*[a-zA-z0-9])?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-z0-9-]*[a-zA-z0-9]:(?:[x01-x08x0bx0cx0e-x1fx21-x5ax53-x7f]|\[x01-x09x0bx0cx0e-x7f])+)])

此解决方案仅匹配 4 种可能性。

有什么建议可以找到更多电子邮件吗?部分解决方案也是受欢迎的,因为我可以将它们添加到结果中。

注意:pdf 不仅包含电子邮件。因此,一行文本可能如下所示:"电子邮件:example.email@ gmail .com?

试试这个:

/^[w. -]++@[w. -]++$/gm

相关内容

最新更新