Seite 1 von 1
Brauche einen bestimmten RegEx
Verfasst: Freitag 10. April 2015, 10:02
von JohannesGolf
Hallo Zusammen,
ich bräuchte eure Hilfe bei einem RegEx.
Ich hab z.B. so eine Zeile im File.
function(argument1, agrumen2)
Wie schaffe ich es, dass er mir die als 2 Argumente erkennt und nicht als eins?
Er sollte aber auch es als 0 erkennen, wenn z.B. function() da steht.
Ich sag schon mal Danke und wünsch euch ein schönes Wochenende.
Mit freundliche Grüße
Johannes
Re: Brauche einen bestimmten RegEx
Verfasst: Freitag 10. April 2015, 13:25
von Sirius3
@ JohannesGolf: das ist mit regulären Ausdrücken nicht möglich, da sie weder Schleifen noch Rekursion kennen. Was willst Du eigentlich machen? Woher kommen die Zeilen?
Re: Brauche einen bestimmten RegEx
Verfasst: Freitag 10. April 2015, 13:40
von JohannesGolf
Hab das Problem in der Zwischenzeit selber gelöst. Aber Danke
Thread kann geschlossen werden.
Re: Brauche einen bestimmten RegEx
Verfasst: Freitag 10. April 2015, 14:07
von pillmuncher
@JohannesGolf: Es ist ja schön, dass du das Problem gelöst hast. Auch jemand, der in Zukunft ein ähnliches Problem hat, wird sich sicher darüber freuen, dass du es gelöst hast. Auch wenn du nicht verrätst, wie du es gelöst hast.
Threads werden hier im Forum übrigens nicht geschlossen.
Re: Brauche einen bestimmten RegEx
Verfasst: Freitag 10. April 2015, 14:10
von mutetella
Sirius3 hat geschrieben:das ist mit regulären Ausdrücken nicht möglich, ...
Ich möchte das noch gar nicht glauben

und verstehe auch folgendes Ergebnis nicht:
Code: Alles auswählen
>>> re.findall(r'(?!function)\w+', 'function(foo, bla, bar)')
['unction', 'foo', 'bla', 'bar']
@JohannesGolf
Wie hast Du das gelöst? Würde mich interessieren...
mutetella
Re: Brauche einen bestimmten RegEx
Verfasst: Freitag 10. April 2015, 14:51
von BlackJack
@mutetella: Du hast einen ”negativen Lookahead” und wahrscheinlich ist Dein Missverständnis das Du denkst der ”verbraucht” Zeichen, was er aber nicht tut. Es wird wirklich jede Position in der Zeichenkette geprüft und nicht wenn das nicht mit 'function' anfängt 8 Zeichen dahinter weitergesucht. Das '\w+' bezieht sich auf exakt die selbe Startposition wie das '(?!function)'.