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

kleines RegEx Problem



Hi,

hab hier ein klitzekleines RegEx-Problem. 

Gegeben sein ein String der Dateinamen enthaelt wie sie in Debian
Archiven vorkommen koennen (also z.B. foobar_version_arch.deb,
foobar_version.orig.tar.gz, foobar_version.tar.gz).

Ich moechte nun mit einer Regex darauf matchen, folgende regex macht
fast was sie soll:

'^([^_]+)_([^_]+)(_.+)*(\.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

Das Problem: Ich kann keine weiteren Einschraenkungen in Gruppe 2
machen, da sowohl Buchstaben als auch . dort erlaubt sind. Ich muesste
also irgendwie ausdruecken, dass orig.tar.gz "Vorrang" vor tar.gz hat.
Nur da verlassen sie mich halt, so ein Regex-Guru bin ich leider nicht
:-(

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

Andreas

-- 
You will gain money by an illegal action.



Reply to: