如何让Perl告诉我匹配的字符编号,例如在我的文本文件中:
CHI (3) - NSH (1)
DAL (4) - CHI (3)
VAN (3) - CHI (2)
我希望得到CHI出现的字符编号,例如:
Line 1: 0
Line 2: 9
Line 3: 9
任何想法或提示?。
答案 0 :(得分:3)
答案 1 :(得分:3)
use strict;
use warnings;
use English qw<$INPUT_LINE_NUMBER>;
open my $fh, '<', '/path/to/file/I/want' or die "Could not open file!";
while ( <$fh> ) {
printf "Line %d: %d\n", $INPUT_LINE_NUMBER, index( $_, 'CHI' );
}
close $fh;
答案 2 :(得分:1)
此处发布的索引解决方案很好, 但出于学习目的,你也可以 使用正则表达式,例如:
...
while( <$fh> ){
/CHI/g && print "Line $.: $-[0]\n"
}
...
会打印您想要的输出。这甚至会成为一个奇特的单行:
$> perl -lne '/CHI/g && print "Line $.: $-[0]"' data.txt
此致
RBO