Article View: be.comp.programming
Article #8871Re: Vraagje over complexe regular expression
From: WimVDE
Date: Sat, 08 Jun 2002 13:53
Date: Sat, 08 Jun 2002 13:53
77 lines
4158 bytes
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-mailReferences:
<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