Ich schreibe einen Parser, der den Wert aus der Textdatei erfassen wird. Abgesehen von zwei Werten kann ich alle Werte erfassen.Regulärer Ausdruck für die Erfassung von Werten - Perl
Kann jemand mir helfen, diese zwei Werte auch zu bekommen?
ist hier mein Code:
use warnings;
open(my $fh, "<", "$tZPath\\Diag.txt") || print "can't open file filename : $!\n";
my ($aBT_Slave, $iD, $hready, $address);
while (defined(my $line = <$fh>)) {
if ($line =~ /ID\:\s*(.+?\W+)/i) {
$iD = $1;
print " Id -> $iD \n";
}
elsif ($line =~ /HREADY\:\s*(.+?\W+)/i) {
$hready = $1;
print " hready -> $hready \n";
}
elsif ($line =~ /ADDR0\w\s*(.+?\W+)/i) {
$address = $1;
print " address -> $address \n";
}
elsif ($line =~ /PCNOC\_(.*?\d+)/i) {
$aBT_Slave = "PCNOC_" . $1;
print " aBT_Slave -> $aBT_Slave \n";
}
}
Log-Datei Inhalt:
ABT PCNOC_9 ID: 0x0000430c
ABT PCNOC_9 ADDR0: 0x000000e0
ABT PCNOC_9 ADDR1: 0x00000000
ABT PCNOC_9 HREADY: 0xfffffffd
ABT PCNOC_9 Slaves: 5
Fatal Error: AHB_TIMEOUT
Kann mir jemand bitte helfen Sie den ADDR0
Wert und PCNOC_9
aus dem Protokoll zu bekommen? Bitte lassen Sie mich wissen, wenn Sie hier eine unklare Sühne behalten haben.
Während dieser Code die Frage beantworten kann, die Bereitstellung zusätzlichen Kontext in Bezug auf _why_ und/oder _how_ es beantwortet die Frage würde seine langfristigen Wert deutlich verbessern. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erklärung hinzuzufügen. –