Autor Beitrag
ebber
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 239
Erhaltene Danke: 1

Win XP, Win 7
C# (VS 2010), Delphi (2007), Expression 4
BeitragVerfasst: Do 04.06.09 19:59 
Hallo,

ich habe ein kleines Problem mit einem Regex. Vielleicht könnt ihr mir da helfen.

Der Text würde z.B. so aussehen: XYZYXYXZY123 oder YXZYXZ123YXZYX

Jetzt möchte ich dass ich mit dem Regex die 123([0-9]) rausbekomme. Sollte der Text aber 4 Zahlen hintereinander enthalten soll es nicht funktionieren.
Das hatte ich jetzt so: [^0-9][0-9]{3}[^0-9].

Das Problem ist jetzt das: "XYZYXYXZY123". Damit funktioniert das natürlich nicht, da statt [^0-9] nix da ist. Ich habe leider kein Regexzeichen gefunden, das nichts symbolisiert. Gibt es sowas? Denn dann könnte man ja [^0-9] oder nix schreiben.

Oder müsste man das irgendwie anders lösen? Mit ohne Regex?

MfG
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 04.06.09 20:05 
Da steht doch nicht "nix", sondern: das Stringende :zwinker: .
ausblenden Quelltext
1:
[^\d]\d{3}([^\d]|$)					

Oder per Lookahead, gleich noch mit Lookbehind für den Fall "123xyz":
ausblenden Quelltext
1:
(?<!\d)\d{3}(?!\d)					

_________________
>λ=
ebber Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 239
Erhaltene Danke: 1

Win XP, Win 7
C# (VS 2010), Delphi (2007), Expression 4
BeitragVerfasst: Do 04.06.09 20:17 
:) Danke

Ich sehe es gibt in Sachen Regex für mich noch einiges zu lernen. Ich wusste nicht, dass es ein "Stringende" gibt. Beim Anderne wusste ich zwar dass es sowas gibt, aber nicht im geringsten wie das funktioniert :oops: .

MfG