Thread Benötige Hilfe bei RegEx (17 answers)
Opened by jogi at 2007-08-04 19:41

PerlProfi
 2007-08-04 21:49
#97511 #97511
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Die Inhalte aus Zeile 1 solltest du so bekommen:
Code: (dl )
$line =~ /\s(\d{4}-\d\d-\d\d)\s(\d\d:\d\d:\d\d)\s(\d+\.\d+\.\d+\.\d+)\s(\d+)\s\d$/;

In $1 steht das Datum, in $2 die Uhrzeit, in $3 die IP Adresse und in $4 der Port.

Ich hab noch immer nicht verstanden was du aus Zeile 2 brauchst, aber so kannst du alles mögliche abfragen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$line =~ /
^s\s # am anfang immer ein s + space

# in der mitte kann einer der folgenden ausdrücke stehen,
# jeweils gefolgt von space, in genau dieser reihenfolge
(Exit)?\s*
(Fast)?\s*
(Guard)?\s*
(Stable)?\s*
(Running)?\s*
(V2Dir)?\s*

Valid$ # am ende immer Valid
/x;

# oder kurz: $line =~ /^s\s(Exit)?\s*(Fast)?\s*(Guard)?\s*(Stable)?\s*(Running)?\s*(V2Dir)?\s*Valid$/

In $1 - $6 steht jetzt ob 'exit' - 'v2dir' in der zeile vorhanden ist.

Zeile 3 siehe renees code.

MfG

View full thread Benötige Hilfe bei RegEx