🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #4970

Re: Regex: hoe iets te excluden?

#4970
From: Walter Baeck
Date: Tue, 27 May 2003 10:11
57 lines
3445 bytes
> > grep "[^(foo)]bar"
> >
> > wat leidt tot problemen:
> >  - bar aan begin van regel wordt niet weerhouden
> >  - bv. "fuifbar" wordt onterecht geweigerd
> 
> Wij werken met de GNU-versie van grep en dan werkt het perfect.

Ik heb de raad van Kris De Decker gevolgd
(uit news:57388f65.0305171657.2f71e9ed@posting.google.com )
en Regex Coach geinstalleerd. Dit is dan blijkbaar niet kompatibel
met jullie GNU-versie van grep; net zoals wat ik in Solaris grep
observeer, faalt de match op de twee situaties die ik aanhaalde.


> Ik ken enkel wat van pattern matching die bij Perl toegepast wordt
> en her en der wat verschilt met bv sed en awk.
> Bij Perl dienen de haakjes om karakters samen te voegen
> (en te capturen in de variabelen $1, $2, enz)

Precies zoals ik het in Solaris sed gebruik.
Gelukkig hebben we toch nog ergens een gemeenschappelijk vertrekpunt :-)

 
> Blijkbaar denkt uw grep-versie er anders over en geldt dan de negatie van
> enkel de letter f. Van zodra een string begint met f, is het pattern reeds
> false.

Ik vermoed dat grep "[^(foo)]bar hetzelfde is als grep "[^foo]bar"
onder de versie die ik gebruik. Als ik "man regexp" goed begrijp,
dan betekent dit dat er gezocht wordt op een string van precies
4 karakters, van de vorm .bar waarbij er op het puntje geen letter
mag staan die voorkomt tussen in de "exclude list" [^foo].


> > Mijn oplossing zou dit monsterlijke gedrocht zijn:
> >
> > grep bar * | sed 's/foobar/ONGEWENST/g' | grep bar | sed
> > 's/ONGEWENST/foobar/g'
> >
> > Hopelijk weet er iemand iets eleganter.
> 
> grep -ie "bar" <file>| grep -iv "foobar"

Dit lijkt me zeker niet de oplossing, aangezien O.P. vermeldde dat
      blabla foobar bar blabla
toch WEL moest gematchd worden. Juist, Roel ? Dat maakt het nu net
zo moeilijk..

-- 
  ____________         
  \          /    Walter Baeck
   \ ALCATEL/     Alcatel Telecom
    \ BELL /      Broadband Networks Division 
     \    /       Microelectronics Design 
      \  /        E-mail  : walter.baeck@alcatel.be     
       \/         Phone   : +32 3  240 73 86
Technical Details
Message-ID: <3ED339E4.B9DFA679@alcatel.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!news.stgl.sel.alcatel.DE!not-for-mail
References: <pXlza.15654$1u5.1208@afrodite.telenet-ops.be> <l8mza.15670$1u5.1346@afrodite.telenet-ops.be> <Afmza.15691$1u5.1402@afrodite.telenet-ops.be> <Vkmza.15706$1u5.1417@afrodite.telenet-ops.be> <3ED1EF43.F24F54DD@alcatel.be> <pQmAa.20289$1u5.1344@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,42e50ad98d9b8861
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-05-27 03:12:05 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!news.stgl.sel.alcatel.DE!not-for-mail
From: Walter Baeck <walter.baeck@alcatel.be>
Newsgroups: be.comp.programming
Subject: Re: Regex: hoe iets te excluden?
Date: Tue, 27 May 2003 12:11:48 +0200
Organization: ALCATEL BELL
Lines: 57
Message-ID: <3ED339E4.B9DFA679@alcatel.be>
References: <pXlza.15654$1u5.1208@afrodite.telenet-ops.be> <l8mza.15670$1u5.1346@afrodite.telenet-ops.be> <Afmza.15691$1u5.1402@afrodite.telenet-ops.be> <Vkmza.15706$1u5.1417@afrodite.telenet-ops.be> <3ED1EF43.F24F54DD@alcatel.be> <pQmAa.20289$1u5.1344@afrodite.telenet-ops.be>
NNTP-Posting-Host: news.stgl.sel.alcatel.de (194.113.59.80)
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: fu-berlin.de 1054030309 4041279 194.113.59.80 (16 [131051])
X-Mailer: Mozilla 4.77 [en] (X11; U; SunOS 5.6 sun4u)
X-Accept-Language: en
Cache-Post-Path: news.alcatel.de!unknown@btm419.sh.bel.alcatel.be
X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)