2016-10-06 5 views
1

Hier einige EingangsRegexMuster übereinstimmen müssen ‚-‘

36 1 36 0ef6c0 id  N8 Online  FC F-Port 50:05:07:68:01:80:fc:ae 
37 1 37 0ef680 id  N8 Online  FC F-Port 50:05:07:68:01:80:fa:1b 
38 1 38 0ef640 id  N8 Online  FC F-Port 50:05:07:68:01:80:fa:2e 
    39 1 39 0ef600 id  N8 Online  FC F-Port 50:05:07:68:01:80:f9:ca 
86 2 22 0eea40 -- -- Online  VE VE-Port 10:00:00:05:33:ea:da:4d "replsa2v" (downstream) 
87 2 23 0eea00 -- -- Offline  VE Disabled (Persistent) 
88 2 24 0ee9c0 -- -- Offline  VE Disabled (Persistent) 

Dieser reguläre Ausdruck die ersten vier Zeilen entspricht.

(?<index>\d+)\s+(?<slot>\d+)\s+(?<port>\d+)\s+(?<address>\w{6,})\s+\b(id|cu)\b\s+(?<speed>\w\d+)\s+\b(?<state>\w+)\s+(?<protocol>\S+)\s+(?<type>\S+)\s(?<extra>.*) 

Dieser entspricht der letzten 3

(?<index>\d+)\s+(?<slot>\d+)\s+(?<port>\d+)\s+(?<address>\w{6,})\s+[-]{2}\s+[-]{2}\s+\b(?<state>\w+)\s+(?<protocol>\S+)\s+(?<type>\S+)\s(?<extra>.*) 

ich ein Muster möchte, dass alle Spiele. Der Code funktioniert, aber es wäre sauberer und etwas schneller, wenn ich ein einzelnes Spiel machen würde. Das Beste, was ich mit einem einzelnen Muster machen kann, ist, die erste Hälfte der ersten 4 Zeilen der Eingabe und die letzte Hälfte der letzten 3 zu vergleichen - im Grunde alles vor der ersten - und nach der letzten.

+0

ich nicht da wusste waren Filter gegen das Wort ‚Hilfe‘. Helop war ein Tippfehler und nicht absichtlich. –

+0

Der bearbeitete Titel ist viel besser, obwohl es nicht wirklich erklärt, was Sie noch fragen. Matching * - * ist ziemlich einfach. Du willst mehr tun, oder? (Fehlbuchungen, um an Filtern vorbeizukommen, passiert hier oft.) Ich werde den Kommentar löschen, da er sowieso nicht mehr benötigt wird. :-) –

Antwort

0

diese Arbeit für mich:

(?<index>\d+)\s+ 
(?<slot>\d+)\s+ 
(?<port>\d+)\s+ 
(?<address>\w{6,})\s+ 
(id|cu|-{2})\s+ 
(?<speed>\w\d+|-{2})\s+ 
\b(?<state>\w+)\s+ 
(?<protocol>\S+)\s+ 
(?<type>\S+)\s 
(?<extra>.*) 
+0

danke. Wenn ich mir deinen anschaue, sehe ich, dass mein Fehler darin besteht, die \ b \ b-Tags im Muster zu belassen. –