我正在尝试从txt文件中提取电子邮件地址。我想过包含'@'字符的周围的单词。有人知道这样做的表达吗?
答案 0 :(得分:4)
每当您在Perl中需要一些相当常见的匹配问题解决时,您应该首先检查CPAN上的Regexp::Common
系列。在这种情况下:Regexp::Common::Email::Address
。来自POD Synopsys:
use Regexp::Common qw[Email::Address];
use Email::Address;
while (<>) {
my (@found) = /($RE{Email}{Address})/g;
my (@addrs) = map $_->address, Email::Address->parse("@found");
print "X-Addresses: ", join(", ", @addrs), "\n";
}
答案 1 :(得分:2)
这是一个非常快速和脏的正则表达式,它将匹配@
两侧的非空格字符:
/\S+@\S+/
这将匹配
中的 john.smith@example.com一些垃圾文本john.smith@example.com更多垃圾文本
希望这有帮助。