haselocke
Bekanntes Mitglied
hi leuts,
folgendes problem:
ich habe einen string mit zeilenumbrüchen, zb
ich möchte alle ergebnisse, die mit 'b' beginnen.
dafür benutze ich und fast jeder andere auch, folgenden regulären ausdruck '^b'.
leider liefert mir das kein ergebnis, weil 'b' ja nich am anfang vom string steht, sondern am anfang einer zeile. nun könnte ich den string zeilenweise einlesen, das soll aber nich sein, also brauch ich eine andere lösung.
meine idee war es nun folgendes:
damit der user meines programms (in java programmiert) nich umdenken muss, wollte ich den regulären ausdruck intern umwandeln, damit dieser auch das 'b' nach einen zeilenumbruch '\n' erkennt.
der richtige reguläre Ausdruck, der auch funktioniert wäre dann: '(^|\n)b'
nun besteht wahrhaftig die lösung nur noch darin im eingegbenen regulären ausdruck das '^' zu suchen und in das '(^|\n)' umzuwandeln.
und genau da liegt das problem.
erschwerend kommt noch hinzu, das vor dem '^' kein '[' stehen darf. also muss ich intern, in dem vom user eingegebenen regulären ausdruck, nach sowas '[^\[]\^' suchen und den dann nach '(^|\n)' umwandeln.
als fehlermeldung erhalte ich vom compiler nur ein haufen 'illegal escape character', die ohne zweifel durch die 'falschen' regulären ausdrücke entstanden sind.
so, und wenn jetzt noch irgenwer mein kauderwelsch verstanden hat und auch eine lösung weiß, prima, dann her damit.
mfg
@ADMIN: bin ich mit den thema überhaupt hier richtig? -grübel-
folgendes problem:
ich habe einen string mit zeilenumbrüchen, zb
Code:
a1
a2
b1
b2
ich möchte alle ergebnisse, die mit 'b' beginnen.
dafür benutze ich und fast jeder andere auch, folgenden regulären ausdruck '^b'.
leider liefert mir das kein ergebnis, weil 'b' ja nich am anfang vom string steht, sondern am anfang einer zeile. nun könnte ich den string zeilenweise einlesen, das soll aber nich sein, also brauch ich eine andere lösung.
meine idee war es nun folgendes:
damit der user meines programms (in java programmiert) nich umdenken muss, wollte ich den regulären ausdruck intern umwandeln, damit dieser auch das 'b' nach einen zeilenumbruch '\n' erkennt.
der richtige reguläre Ausdruck, der auch funktioniert wäre dann: '(^|\n)b'
nun besteht wahrhaftig die lösung nur noch darin im eingegbenen regulären ausdruck das '^' zu suchen und in das '(^|\n)' umzuwandeln.
und genau da liegt das problem.
erschwerend kommt noch hinzu, das vor dem '^' kein '[' stehen darf. also muss ich intern, in dem vom user eingegebenen regulären ausdruck, nach sowas '[^\[]\^' suchen und den dann nach '(^|\n)' umwandeln.
als fehlermeldung erhalte ich vom compiler nur ein haufen 'illegal escape character', die ohne zweifel durch die 'falschen' regulären ausdrücke entstanden sind.
so, und wenn jetzt noch irgenwer mein kauderwelsch verstanden hat und auch eine lösung weiß, prima, dann her damit.
mfg
@ADMIN: bin ich mit den thema überhaupt hier richtig? -grübel-