说我有这部分数据:
asdsad;adafds;asfdafas;frewf;gggf
121132;sadf12;124fd;1243fd;dfgfew
...字符串分隔符为;
如何获得每行的第4部分?即。 ; ; ;[this];
这不起作用:;{3}(\w+)
我需要正则表达式,因为我想在Schartzian-transform
中使用它答案 0 :(得分:5)
只需使用split
:
use strict;
use warnings;
while (<DATA>) {
chomp;
my $fourth = (split ';', $_)[3];
print "$fourth\n";
}
__DATA__
asdsad;adafds;asfdafas;frewf;gggf
121132;sadf12;124fd;1243fd;dfgfew
输出:
frewf
1243fd
答案 1 :(得分:3)
您可以使用以下正则表达式:
([^;]+;){3}([^;]+)
并且第二个捕获的组(\2
或$2
)将包含您想要的内容:
例如:上面(\2
/ $2
)上面的问题中包含frewf
和1243fd