On Wed, Jun 21, 2006 at 01:56:21PM +0200, Christoph Haas wrote: >for mentors.debian.net I would like to find a perfect (TM) regular >expression to split the "Version:" line of a control file into: > > - epoch > - upstream version > - Debian package revision > >My current attempt is: > > ^(?:(\d+):)?(\d[\w\.\+-:]*?)(?:-(.+))?$
If you really want a single regex you could use: ^(?:([^:]+):)?(.*?)(?:-([^-]+))?$ My inclination however would be to use multiple steps to split the version: my $epoch = ''; my $debver = ''; for ($version) { $epoch = $1 if s/^([^:]+)://; $debver = $1 if s/-([^-]+)$//; } --bod -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]