如何从 html 代码解析一些邮件

如何从 html 代码解析一些邮件

我想编写一个小型 bash 脚本来检测 HTML 代码中的某些邮件。目前,我不确定如何构建正确的正则表达式来从 HTML 中自动检测电子邮件。

我尝试使用 curl 来执行这个正则表达式:

egrep -o "\S*@.*\.\S*" 

但这包括直到第一个空格的所有非字母字符。

举一个小例子:

</span></p><p class="footertext"><span style="color: rgb(255, 255, 255);">Email&nbsp;</span><br><a href="mailto:[email protected]" style="color: rgb(255, 255, 255);"

现在我只想自动检测这部分:[email protected]

有人知道吗?

干杯

答案1

当你只想获取“mailto:和”之间的任何内容时,这样做就可以了:

grep -oP '(?<="mailto:)[^"]+(?=")'

它用积极回顾积极展望它由 Perl 正则表达式语法(-P 标志)支持。

如果您需要对地址进行额外的验证,您可能需要查看如下讨论的表达式:https://stackoverflow.com/questions/201323/how-to-validate-an-email-address-using-a-regular-expression

更新:

如果你不想回到过于复杂的表达式,那么这个应该可以完成工作:

grep -oP $'[^\'",<>:\\s]+@[^\'",<>:\\s]+'

您可以轻松地在方括号内添加额外的分隔字符。

更新2:

如果你还想匹配这样的内容:regex @ example.com

grep -oP $'[^\'",<>:\\s]+\\s*@\\s*[^\'",<>:\\s]+'

相关内容