【发布时间】:2015-12-15 06:41:05
【问题描述】:
我对这个话题有一些疑问:
How can I print lines after a regex match in Perl?
我正在使用源代码并将正则表达式从数据修改为 (F)。
但是当我跑的时候,那些有F的线也会被捡起来。虽然我已经将正则表达式更改为 (F)。谁能帮我解决这个问题?
这是我的数据(输入文件):
Device#1
00 000 000 000 1 > beta (F)
Device#2
00 000 000 1 000 > beta (F)
Fail
Device#3
00 000 1 000 000 > beta (F)
57020 0 Main LDO VOUT, IN = 3.5V, OUT = 200u out 3.480 V 3.480 V (F) 3.520 V 0.
我使用的代码是:
my $directory = 'C:\Users\Try';
my $motif = '(F)';
parse($motif);
sub parse{
my ($x) = (@_); #$x=(F)
print "$x\n";
while(<INPUT>)
{
if($_ =~ />*($x)/)
{
print $_."\n";
$printable = 1;
}
else
{
# print "ELSE\n";
}
# print "FINISH 1 loop\n";
}
}
我希望得到的结果:
00 000 000 000 1 > beta (F)
00 000 000 1 000 > beta (F)
00 000 1 000 000 > beta (F)
57020 0 Main LDO VOUT, IN = 3.5V, OUT = 200u out 3.480 V 3.480 V (F) 3.520 V 0.
我得到的当前输出如下:
00 000 000 000 1 > beta (F)
00 000 000 1 000 > beta (F)
00 000 1 000 000 > beta (F)
Fail
57020 0 Main LDO VOUT, IN = 3.5V, OUT = 200u out 3.480 V 3.480 V (F) 3.520 V 0.
【问题讨论】:
-
你得到了什么结果?
-
嗨 Jens,我得到了结果 00 000 000 000 1 > beta (F) 00 000 000 1 000 > beta (F) 00 000 1 000 000 > beta (F) Fail 57020 0 Main LDO VOUT,IN = 3.5V,OUT = 200u 输出 3.480 V 3.480 V (F) 3.520 V 0.
-
结果中有一个额外的失败行。这对我来说不是必需的。
-
谁能教我解析的工作原理是什么?解析($motif);子解析{