[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: kleines RegEx Problem



Andreas schriebst am 24. May um 03:06 Uhr:

> '^([^_]+)_([^_]+)(_.+)*(\.orig\.tar\.gz|\.tar\.gz|\.diff\.gz|\.dsc|\.deb|\.udeb|\.package|\.source)$'
> 
> Das Problem dabei: Bei foobar_version.orig.tar.gz erhalte ich fuer
> 
> \1 = foobar
> \2 = version.orig
> \3 = tar.gz

Es gibt diverse Regex-Implementierungen. Bei Tcl zB gibt es
non-greedy-Quantifiers, die Deine Aufgabe vielleicht lösen würden, so etwa

^([^_]+)_([^_]+)(_.+?)* ...

Die sind aber recht schwer überschaubar in ihren Auswirkungen.

> Jemand nen Tipp wie ich das mit einer regex erschlagen kann (mit
> mehreren ist es kein Problem, das stoert dann aber im Progamm etwas)?

Ich würde es mit zwei Ausdrücken erledigen.

Christian

-- 
Christian Knoke            * * *            http://cknoke.de
* * * * * * * * *  Ceterum censeo Microsoft esse dividendum.



Reply to: