[linux-l] Re: Regex Frage - vim notation

Sven Guckes maillist-belug at guckes.net
Mi Feb 22 03:27:00 CET 2006


* Robert C. Helling <R.Helling at damtp.cam.ac.uk> [2006-02-22 01:16]:
> On Wed, 22 Feb 2006, Sven Guckes wrote:
> >* Steffen Dettmer <steffen at dett.de> [2006-02-21 13:32]:
> >>\(^\|[^c]\|^.\|[^b].\|^..\|[^a]..\)def
> >>Und warum funktioniert das eigentlich?
> >diese vier faelle sind darin "codiert":
> >   ^def    BOL (beginning of line)       + def
> >   Cdef    nicht-c                       + def
> >  B.def    nicht-b + beliebig            + def
> > A..def    nicht-a + beliebig + beliebig + def
> 
> Du hast die Faelle ^.def und ^..def vergessen.

stimmt auffaellig.  es sind natuerlich
sechs alternativen in diesem ausdruck.

danke!

man sollte dabei nicht nebenbei  essen,
musik hoeren, unterhalten, mails lesen,
chatten, festplatte testen und anderes.. ;-)

update:

diese *sechs* faelle sind darin "codiert":
     ^def    BOL (beginning of line)       + def
    ^.def    BOL (beginning of line)       + def
   ^..def    BOL (beginning of line)       + def
     Cdef    nicht-c                       + def
    B.def    nicht-b + beliebig            + def
   A..def    nicht-a + beliebig + beliebig + def

und in allen *sechs* faellen ist ein
"abc" vor dem "def" nicht moeglich.

fuer drei zeichen im praefix geht's ja noch.
aber der ausdruck waechst natuerlich mit der
laenge des praefix.  und das ist unschoen.

darum finde ich diesen ausdruck in vim so schoen:
    \(foo\)\@<!bar

denn dieser ausdruck ist unabhaengig von
der laenge der strings foo bzw bar.  :-)

Sven



Mehr Informationen über die Mailingliste linux-l