hi leute,
sorry auch wenns ne anfängerfrage is, aber ich verzweifel grad:
ich habe einen string der immer folgendermaßen aufgebaut ist:
adresse = 127.0.0.1
nun möchte ich in dem fall nur die ip (127.0.0.1) durch regex bekommen.. ich bekomms einfach nicht hin.
folgendes hab ich bereits versucht:
.*?=(.*?)
hier matcht er mir genau das gegenteil, aber wie kann das sein?
Danke für eure hilfe
Die Fragezeichen sagen ihm "so wenig wie möglich" - da du keine äußeren Begrenzungen angegeben hast wird der Regex nur auf das = und nichts weiteres matchen. Du brauchst auf jeden Fall eine Begrenzung am Ende, sei es nun ein $ beim Mehrzeilenmatch oder ein Newline.
Was meinst du mit "hier macht er genau das Gegenteil?"
Greetz,
Grolli
einfach die ? weglassen und nachm = ein Leerzeichen:
.*= (.*)
Das Hauptproblem scheint zu sein, wie du die E-Mail Adresse auslesen kannst.
So wie du denkst geht das beispielsweise mit folgendem Pattern:
(?<=\w+ *= *)[\d\.]+
Normalerweise liest man aber in den Matches
die Group
s aus.
Wie das geht steht im [Artikel] Regex-Tutorial
In Nützliche Regex-Pattern findet sich ein vordefiniertes Pattern für eine IP-Adresse.
\w+ *= *\b(?<IPAddress>(2([0-4][0-9]|5[0-5])|[01]?[0-9]{1,2})(\.(2([0-4][0-9]|5[0-5])|[01]?[0-9]{1,2})){3})\b
Das wäre dann das Pattern.
mfg
SeeQuark