Ich versuche, einige Muster aus einer Protokolldatei zu extrahieren, aber ich kann sie nicht richtig drucken.Perl Regex - Drucken Sie die passenden Conditional Regex
Beispiele für Protokoll Strings:
1) sequence_history/buckets/FPJ.INV_DOM_16_PRD.47269.2644?startid=2644000&endid=2644666
2) sequence_history/buckets/FPJ.INV_DOM_16_PRD.41987.9616
I 3 Dinge extrahieren möchten:
A = "FPJ.INV_DOM_16_PRD" B = "47269" C = 9616 oder 2.644.666 (wenn die Leitung hat endid dann C = 2.644.666 sonst ist es 9616)
Logzeile können entweder vom Typ 1 oder 2. ich bin in der Lage A und B zu extrahieren, aber ich bin mit C stecken, wie ich eine Notwendigkeit bedingte Aussage dafür und ich kann es nicht richtig extrahieren. Ich gebe meinen Code ein:
my $string='/sequence_history/buckets/FPJ.INV_DOM_16_PRD.47269.2644?startid=2644000&endid=2644666';
if ($string =~ /sequence_history\/buckets\/(.*)/){
my $line = $1;
print "$line\n";
if($line =~ /(FPJ.*PRD)\.(\d*)\./){
my $topic_type_string = $1;
my $topic_id = $2;
print "$1\n$2\n";
}
if($string =~ /(?(?=endid=)\d*$)/){
# how to print match pattern here?
print "match\n";
}
Vielen Dank im Voraus!
So etwas wie https://regex101.com/r/T6QDMh/1/? – revo