edit: Maybe the data is like this?
I have no idea. Please show what goes on what line. This will make a difference.b=23 y=0x11 arg=0x70 def=0x1 val=0x234 checking system b=71 y=0x35 arg=0x87 def=0x3 val=0x76d h=reg.k2.io.chk 0x2001 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b f chk.fin.reg.m_cwr 0x213 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b checking system b=40 y=0x90 arg=0x34 def=0x5 val=0x2197 f ref.grf.pin.clk_trg 0x0021
###### update
Ok, assuming the formatting by Athanasius++ is correct.
This is a simple albeit very wordy algorithm - make a single line out of the multi-line record and run a regex on that.
#!/usr/bin/perl use warnings; use strict; my ($b,$f); while ( ($b, $f)=get_record(), defined ($b) ) { print "b=\'$b\' f=\'$f\'\n"; } sub get_record { my $line; my $record=''; while (defined($line=<DATA>) and $line !~ /^\s*$/) { $record .= $line } my ($b)= $record =~ /b\=(\w+)/; my ($f)= $record =~ /f (.*)/; $f//=""; return ($b,$f); } =Prints: b='23' f='' b='71' f='' b='54' f='chk.fin.reg.m_cwr 0x213' b='54' f='' b='40' f='ref.grf.pin.clk_trg 0x0021' =cut __DATA__ b=23 y=0x11 arg=0x70 def=0x1 val=0x234 checking system b=71 y=0x35 arg=0x87 def=0x3 val=0x76d h=reg.k2.io.chk 0x2001 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b f chk.fin.reg.m_cwr 0x213 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b checking system b=40 y=0x90 arg=0x34 def=0x5 val=0x2197 f ref.grf.pin.clk_trg 0x0021
In reply to Re: perl regex for repeating words
by Marshall
in thread perl regex for repeating words
by analys
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |