Perl正则表达式与新线分开

3 regex perl split

我是Perl的新手,正在为一所学校的项目工作,我被困住了.

输入:包含由空格,制表符",",";"分隔的电子邮件地址的给定文本文件 或":"[可以在不同的行上].

我正在尝试阅读电子邮件地址并将它们放入数组中.我能够在一行解析数据但是如果有换行符或返回我只得到最后一个元素.

有人可以帮我弄清楚如何在一个单独的行上列出每个地址的列表并解析它们吗?我已经阅读了一些正则表达式但需要更多练习.谢谢.

open(EmailAddresses, "EmailAdressesCommaList.txt") || die "Can not open file $!";

# 
while (<EmailAddresses>)
{
    chomp;
    # Split the line into words
    @lines = split /[ ,;:\t\r\n(\t\r\n\s)+?]/;
}

foreach $value (@lines)
{
    print $value . "\n";
}
Run Code Online (Sandbox Code Playgroud)

cha*_*aos 7

open(EmailAddresses, "EmailAdressesCommaList.txt") || die "Can not open file $!";
while(<EmailAddresses>) {
    chomp;
    push @lines, split /[ ,;:\t\r\n(\t\r\n\s)+?]/;
}
foreach $value (@lines) {
    print $value . "\n";
}
Run Code Online (Sandbox Code Playgroud)

即问题不在于你的正则表达式,而是每次循环都会覆盖@lines.