Avatar billede Lasse Novice
07. december 2006 - 19:25 Der er 17 kommentarer og
1 løsning

Not streng

Jeg har foelgende pseudo reg. udtryk:

.+ && NOT(Tekst1||Tekst2||Tekst3)

Er det muligt at lave dette via regular udtryk?
Avatar billede coderdk Praktikant
07. december 2006 - 19:30 #1
Jeg forstår ikke din pseudokode. Vil du bare være sikker på at strengen ikke indeholder Tekst1 eller Tekst2 eller Tekst3?
Avatar billede Lasse Novice
07. december 2006 - 19:56 #2
strengen skal indeholde 1 eller flere tegn MEN maa ikke indeholde Tekst1 eller Tekst2 eller Tekst3
Avatar billede jensgram Nybegynder
07. december 2006 - 21:40 #3
Hvis du siger

NOT(  "^($|.*(Tekst1|Tekst2|Tekst3).*$)"  )

Vil det vel virke!? Eller misforstår jeg?
Avatar billede coderdk Praktikant
07. december 2006 - 22:22 #4
gooky, Hvad laver du det i? PHP? Python? Perl?
Avatar billede Lasse Novice
07. december 2006 - 22:28 #5
Via .net's klasse System.Text.RegularExpression.Regex.

Jensgram >> har aldrig set denne maade at goere det paa... lad mig teste.
Avatar billede coderdk Praktikant
07. december 2006 - 22:57 #6
Hvorfor ikke bare se om (Tekst1|Tekst2|Tekst3) matcher og om strengenlængden er større end 0? :) Ingen grund til at gøre det mere besværligt end det er ;)
Avatar billede coderdk Praktikant
07. december 2006 - 22:58 #7
Avatar billede Lasse Novice
07. december 2006 - 23:03 #8
Hej igen.

Problemet er at jeg ikke selv har lavet programmet. Jeg har en tekstbox hvori jeg skal skrive et filter via reg. exp.
Avatar billede coderdk Praktikant
07. december 2006 - 23:35 #9
Prøv: ^(?:(?!Tekst1|Tekst2|Tekst3).)+$
Avatar billede Lasse Novice
08. december 2006 - 21:57 #10
coderdk>> Det virker 95% men jeg tror jeg har formuleret mig forkert. Streng maa ikke vaere "Tekst1" eller "Tekst2" eller "Tekst3", men maa godt vaere f.eks. "Tekst12" og SKAL minimum indeholde 1 tegn.
Avatar billede Lasse Novice
08. december 2006 - 22:01 #11
Tjek dette vaerktoej: www.regexbuddy.com
Avatar billede jensgram Nybegynder
09. december 2006 - 12:05 #12
^(?!Tekst1|Tekst2|Tekst3).+$


Eller?
Avatar billede coderdk Praktikant
09. december 2006 - 16:05 #13
Prøv: ^(?:(?!\bTekst1\b|\bTekst2\b|\bTekst3\b).)+$
Avatar billede coderdk Praktikant
09. december 2006 - 16:08 #14
Eller måske lidt pænere:

^(?:(?!\b(Tekst1|Tekst2|Tekst3)\b).)+$
Avatar billede Lasse Novice
09. december 2006 - 19:20 #15
Laver jeg en:

bool b = System.Text.RegularExpressions.Regex.IsMatch("Tekst1", "^(?:(?!\b(Tekst1|Tekst2|Tekst3)\b).)+$");

faar jeg true, hvilket det ikke skulle vaere. Her proever jeg en tekst som ikke maa forekomme, og derved skulle jeg have false tilbage.
Avatar billede coderdk Praktikant
09. december 2006 - 21:34 #16
Du har glemt et @

bool b = System.Text.RegularExpressions.Regex.IsMatch("Tekst1", @"^(?:(?!\b(Tekst1|Tekst2|Tekst3)\b).)+$");
Avatar billede coderdk Praktikant
09. december 2006 - 21:39 #17
"Problemet er at jeg ikke selv har lavet programmet. Jeg har en tekstbox hvori jeg skal skrive et filter via reg. exp."

Nu har du pludselig kode?
Avatar billede Lasse Novice
10. december 2006 - 00:30 #18
codedk>> Nae, jeg sidder bare og tester via et program jeg selv har lavet, men det hvor jeg skal bruge det kan jeg ikke aendre noget :-(

Naa, men det virker, manger takker
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