regex - Perl REGEX 在后处理输出文件时重复捕获组

标签 regex perl capture-group

我正在处理一串科学格式的数字。例如

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/

相关文章:

perl - 如何在 Perl 中将四个字符转换为 32 位 IEEE-754 float ?

javascript - 多行字符串中任意数量的捕获组

c# - C# 中的正则表达式如何仅替换捕获组而不替换非捕获组

java - java正则表达式有问题

java - Android 中至少 3 个(数字和特殊字符)的正则表达式

相当于 perl hmac_sha1_hex 的 python

image - 裁剪、调整大小和缩放图像之间有什么区别?

r - R中find_replace nul字符

javascript - 转换为 JavaScript 正则表达式的 .NET 正则表达式在测试器中有效,但在代码中无效