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

Re: Suche nach RegEx für sed



Am Montag, 16. April 2007 15:15 schrieb Michael Welle:
> Hallo,
>
> Frank Küster <frank@debian.org> writes:
> > Goran <xamiw@arcor.de> wrote:
>
> [...]
>
> > Im Prinzip mit Negation in bracket expressions, siehe regex(7):
> >
> > s/[^;]*;[^;]*;\([^;]*\);.*/\1/
> >
> > ergibt den Inhalt zwischen zweitem und drittem Semikolon.  Für 26
> > möchte ich das allerdings nicht schreiben (oder gar lesen) müssen. 
> > Da empfehle ich eher was mit einer komplexeren Skriptsprache (Perl,
> > Python,... je nach Geschmack) oder einfach cut:
>
> /^\([^;]*;\)\{26\}xx;.*$/d

@OP:
alle diese Lösungen "hoffen" übrigens, das zwischen 2 Semikolons 
kein "gequotetes" Semikolon (z.B. ..;"xx;yy";..) steht. Falls das 
vorkommen kann, wird es nämlich schwierig, da es nicht mehr als 
regulärer Ausdruck (nichtmal mehr kontextfrei) geschrieben werden kann.

Vielleicht lässt es sich mit den Perl Regex-Erweiterungen (non-greedy 
und co. die ja mehr als reguläre Sprachen erfassen) doch bauen. 
Vielleicht weiß dazu ja einer der Perl Experten mehr. Ich vermute aber, 
das hier selbst Perl (mit nur einer Regex) aussteigt.

-- 
Markus Schulz 



Reply to: