Perl:字符串操作 - 用一个字符'@'包围一个单词

时间:2012-08-15 08:03:37

标签: regex string perl

我正在尝试从txt文件中提取电子邮件地址。我想过包含'@'字符的周围的单词。有人知道这样做的表达吗?

2 个答案:

答案 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更多垃圾文本

希望这有帮助。