Avatar billede graugart Nybegynder
10. december 2002 - 10:10 Der er 5 kommentarer og
1 løsning

Regular expressions: Undtagelser!!

Hjææælp!!

Jeg skal have en regular expression til at matche på alle web- og emailadresser, med mindre at der før en webadresse står "[img]". Er der nogen måde man kan definere "undtagelser" i RegExp?

Jeg bruger dette pattern:

objRegExp.Pattern = "\b(www|http|\S+@)\S+\b"

Og den skal altså matche på fx

www.eksperten.dk

men ikke

[img]www.eksperten.dk

HJÆÆÆÆLP!!! :-\
Avatar billede kennie_nm Nybegynder
10. december 2002 - 10:27 #1
du bliver nødt til at lave 2 udtryk og teste på
  "\b(www|http|\S+@)\S+\b" AND NOT [img]www.eksperten.dk
(hvis du forstår hvad jeg mener...

regulære udtryk kan ikke udtrykke 'matcher ikke' på andet end 1 karakter ad gangen. det er fordi et regulært udtryk kan oversættes (er ækvivalent med) en tilstandsmaskine, hvor overgangene sker karaktervis
Avatar billede graugart Nybegynder
10. december 2002 - 10:30 #2
Nej forstår ikke helt - hvordan vil du lave det rent kodemæssigt?
Avatar billede sostack Nybegynder
10. december 2002 - 11:14 #3
for each Match in Matches
if NOT inStr(Match.Value, "[img]") then
  GODMatch = Match
next
Avatar billede eagleeye Praktikant
10. december 2002 - 13:08 #4
Kan du ikke tilføje en not ^[img]  foran:


objRegExp.Pattern = "\b(^\[img\])(www|http|\S+@)\S+\b"
Avatar billede eagleeye Praktikant
10. december 2002 - 13:10 #5
eller  måske skal det i [] og ikke () det er muligt det skal være ^ foran hver karakter..  ^\[î^m^g^\]
Avatar billede graugart Nybegynder
10. december 2002 - 13:32 #6
det blev en løsning a la sostack's forslag, tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester