Avatar billede _cyberdude_ Nybegynder
09. september 2009 - 23:47

Match mod nogle eksempler

Hey eksperter.
Jeg sidder med noget Regex som har irriteret mig et stykke tid nu. Jeg er godt klar over at jeg måske kunne løse mit problem på alle mulige andre måder, men lige nu er jeg opsat på at få det løst via regex.

Herunder er 14 eksempler
De første 7 skal matche min regex, de næste 7 må ikke. "var" er en kendt tekst, "sdfsdf" er en ukendt tekst.
Tallende er ukendt (og dermed alle tal \d ).
Da det er noget html, er der ofte html tags imellem, så </td> og <td> kan være andre html tags.
Symbolet efter var kan være en vilkårlig symbol, men et symbol (non-alpha og non-digit) hvis den er der, der kan også være med eller uden mellemrum, men er der ikke noget symbol vil der altid være mindst et mellemrum efter tallet.
Jeg skal som sådan ikke bruge nogen af værdierne, jeg skal finde ud af om en længere tekst matcher min regex på baggrund af de 14 eksempler her.

var: 23
var= 23
var</td><td>23</td>
var 23
var</td><td>23</td> <td>sdfsdf</td><td>45</td>
var=23 sdfsdf=45
var=23 sdfsdf=

var= sdfsdf=45
var</td><td></td> <td>sdfsdf</td>45</td>
var= sdfsdf=
var
sdfsdf = 45
var= sdfsdf=
var</td><td></td> <td>sdfsdf</td></td>

Jeg bruger RegexBuddy, og jeg har prøvet en masse, men er åbentbart ikke hjemmevant nok i Regex endnu.
Mit tætteste bud er:

var(.*?)([\d]+)

Men den matcher de første 7, men også de næste to, altså de to første af de eksempler som ikke skal matche. Nogen der kan hjælpe med at få denne rettet til?...

Jeg tænker lidt at jeg skal over i noget IfElse (|).
En sikker ting er at hvis der er et tal efter var må der ikke være noget tekst (Alphadigit) mellem var og sdfsdf med mindre det er i html tags (<> og </>).

Hvis noget er utydeligt beskrevet, så spørg endelig :).
Jeg takker på forhånd for alle inputs.
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