我正在处理一串科学格式的数字。例如
24 6.924E+06 8.316E-01 1.052E-01 1.622E+01 1.311E+01 0.000E+00 6.059E-06 (snip.. extends for a bit)
现在我想为 perl 编写一个正则表达式,它允许我捕获列表中的第 i 个值。所以我目前的设置是 folloiwng
$_ =~ ^\s+\d+\s+(\d+[.]\d+E[+]\d+);
my $temp = $1;
这会给我第一个号码。如果我愿意,我希望能够捕获第 7 个或第 50 个,而不必编写非常长的正则表达式。
有没有一种简洁的方法可以做到这一点?
提前致谢。
最佳答案
使用split
my @cols = split ' ', $_;
my $seventh = $cols[6];
my $fiftieth = $cols[49];
关于regex - Perl REGEX 在后处理输出文件时重复捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24833934/