Perl正则表达式将所有字符都带到行尾

时间:2014-11-05 00:20:34

标签: regex perl

我想简单地将所有字符都带到行尾,并将它们放在变量中。这是一个可以解释更多的尝试:

open my $in, '<', 'in.txt';
$iteration = 0
while(<$in>){
    chomp;
    next if /^#|^$/;  //Skip over lines starting with # or empty lines.
    if($iteration==0) {
        die "Error in file formatting!\n" unless /^Data1: [.]*/; //*****
        my ($data1) = /Data[1]: ([.]*)/;  //*****
        $iteration++;
    }
    else if($iteration==1) {
        die "Error in file formatting!\n" unless /^Data2: \d+/;
        my ($data2) = /Data[2]: (\d+)/;
        $iteration++;

    }
    else if($iteration==2) {
        die "Error in file formatting!\n" unless /^Data3: \d+/;
        my ($data3) = /Data[3]: (\d+)/;
        $iteration=0;

    }
}

在循环内的第一个if语句中,这将在行的开头查找字符串“Data [1]:”,现在我想在此之后获取所有内容,并将其放在变量中。因此,空格,标点符号,数字,下划线等都可以,但是一旦有新行,我想继续循环到我的循环中的下一行,所以停在那里(我想停在行的末尾) )。

1 个答案:

答案 0 :(得分:1)

/[.]+/匹配一个或多个.。你想要/.*/,它匹配除换行符之外的任意数量的字符。

my ($data1) = /^Data\[1\]: (.*)/
   or die "Syntax error\n";