🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #8871

Re: Vraagje over complexe regular expression

#8871
From: WimVDE
Date: Sat, 08 Jun 2002 13:53
77 lines
4158 bytes
"WimVDE" wrote:

> Nou ja, ik vraag schijnbaar wel iets vrij complex :)
> Ik zit nu al enkele uren te knoeien met reguliere expressies, maar krijg 
> er niets deftigs uit. Is het uberhaupt wel mogelijk met een reguliere 
> expressie?

"WimVDE" wrote:

> Nou ja, ik vraag schijnbaar wel iets vrij complex :)
> Ik zit nu al enkele uren te knoeien met reguliere expressies, maar krijg 
> er niets deftigs uit. Is het uberhaupt wel mogelijk met een reguliere 
> expressie?

Ik ben weeral ietsje verder, maar nog niet ver genoeg :)
Het blijkt dat Gravity de hele body van een bericht parsed als 1 string. 
De regelafbrekingen gebeuren door een \n karakter.

Dus, ik had al:

RegExp: --.*www\.provider\.be/wimvde

Dat matcht op het voorkomen van mijn website in iemands signature. Nu is 
het de bedoeling dat dit omgekeerd wordt. Er mag geen match zijn wanneer 
mijn site voorkomt in iemand's signature. Hoe pak ik dat aan bij een 
reguliere expressie? Voor een enkel karakter weet ik dat de negatie 
gebeurt met het ^-teken, maar hoe zit het met een groep zoals 
bovenstaande voorbeeld?

Nu om ervoor te zorgen dat er niet gematcht wordt op gequote text heb ik 
volgende expressie:

RegExp: \n[^>][^\n]*wimvde

Die \n staat er om Gravity duidelijk te maken dat een quote (>) steeds 
aan het begin van een regel begint. Dit om misverstanden te vermijden 
bij het vermelden van een url bijvoorbeeld (<url:http://www.site.be/>). 
De [^>] wijst erop dat aan het begin van de regel _geen_ '>' quote-teken 
mag voorkomen (er mag geen match zijn in de quote). Om er nu voor te 
zorgen dat er niet gematcht wordt op volgende situatie:

---------------------------------------------------------------------
> zomaar wat bladvulling om het gewenste duidelijk
> te maken aan de lezers van deze thread.
> En WimVDE staat nu in het quoteblok

Antwoord blah blah
---------------------------------------------------------------------

Staat er ook [^\n]* wat betekent dat er na de quote geen linebreak mag 
voorkomen. Anders zou na het parsen van 'de eerste regel' meteen 
doorgegaan worden met de andere regels tot het voorkomen van WimVDE. De 
[^\n]* zorgt er dus voor dat alles lijn per lijn gebeurt.

Dat werkt dus uitstekend. Maar hoe pas ik het aan zodat er wel een match 
is als WimVDE voorkomt in het eigenlijke bericht? Ik zou denken:

RegExp: \n[^>]?[^\n]*wimvde

De [^>]? zou er volgens mij voor moeten zorgen dat:

---------------------------------------------------------------------
> En WimVDE staat nu in het quoteblok
---------------------------------------------------------------------

Geen match geeft, en

---------------------------------------------------------------------
En nu staat WimVDE in het eigenlijke antwoord
---------------------------------------------------------------------

Wel een match geeft. Of ben ik mis? Maar dat schijnt dus niet te werken 
:(

(dat m'n naam ook in de eerste regels kan voorkomen in het geval van een 
reply laat ik nog eventjes buiten beschouwing - eerst alles stap voor 
stap implementeren)
Technical Details
Message-ID: <MPG.176c2b128c40e687989682@news.telenet.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <MPG.176adae1b92f722d989680@news.telenet.be> <dd7M8.18513$ud.2228@afrodite.telenet-ops.be> <MPG.176b28cdfdb4da99989681@news.telenet.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,4dcdc590c5f344be
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-06-08 06:55:26 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: WimVDE <nospam@mail.box>
Newsgroups: be.comp.programming
Subject: Re: Vraagje over complexe regular expression
Message-ID: <MPG.176c2b128c40e687989682@news.telenet.be>
References: <MPG.176adae1b92f722d989680@news.telenet.be> <dd7M8.18513$ud.2228@afrodite.telenet-ops.be> <MPG.176b28cdfdb4da99989681@news.telenet.be>
X-Newsreader: MicroPlanet Gravity v2.60
Lines: 77
Date: Sat, 08 Jun 2002 13:53:58 GMT
NNTP-Posting-Host: 213.224.52.94
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1023544438 213.224.52.94 (Sat, 08 Jun 2002 15:53:58 MET DST)
NNTP-Posting-Date: Sat, 08 Jun 2002 15:53:58 MET DST
Organization: Telenet Internet