Avatar billede ihtezaz Praktikant
13. juni 2006 - 23:52 Der er 36 kommentarer og
1 løsning

Kun komma eller semikolon imellem tallene

Hej


Jeg skal bruge en regexp, der sørg for at imellem tal kun forekommer enten semikolon eller komma og det må ikke være både semikolon og komma.

På forhånd tak
Avatar billede elskermad.dk Nybegynder
14. juni 2006 - 00:10 #1
måske: (\d+(,|;)?)+
Avatar billede ihtezaz Praktikant
14. juni 2006 - 00:42 #2
mm.. tror ikke, for det er krævet at der både foran delimiter er efter er tal
Avatar billede nielle Nybegynder
14. juni 2006 - 06:41 #3
Snakker vi heltal eller kommatal?

Heltal:

^(\d+[,;])*\d+$
Avatar billede nielle Nybegynder
14. juni 2006 - 06:45 #4
Kommatal (med decimalpunktum):

^(\d+(\.\d+)?[,;])*\d+(\.\d+)$
Avatar billede ihtezaz Praktikant
14. juni 2006 - 09:41 #5
ok, ja det er heltal, men giver din version plads til at der kan være blank tegn imellem komma eller semikolon og tallet ?, for det kan der nemlig forekomme.
Avatar billede ihtezaz Praktikant
14. juni 2006 - 10:01 #6
mm.. synes ikke jeg kan få den til at fungere, den bliver ikke sand, jeg bruger den i asp
Avatar billede ihtezaz Praktikant
14. juni 2006 - 10:10 #7
Sorry, det virker perfekt, hvis bare du kunne ændre den til at der gerne må stå  blank tegn imellem komma eller semikolon.
Avatar billede ihtezaz Praktikant
14. juni 2006 - 10:12 #8
Lige en sidste rettelse, hvis du også kunne ændre således at der også må stå bogstaver.
Avatar billede nielle Nybegynder
14. juni 2006 - 10:13 #9
Ikke ifølge din oprindelige formulering, men det fikser vi da bare :^)

Jeg går ud fra at der altid skal være , eller ; imellem 2 tal, og at der aldrig kun er mellemrum?

Et bud:

^ *(\d+(\.\d+)? *[,;] *)*\d+(\.\d+) *$

Som også tillader mellemrum i start og slut.
Avatar billede nielle Nybegynder
14. juni 2006 - 10:17 #10
Jeg synes at du kommer længere og længere væk fra dit oprindelige oplæg. ;^)

Hvor er det der må stå bogstaver?
Avatar billede ihtezaz Praktikant
14. juni 2006 - 10:58 #11
he he..ja beklager behoven ændre sig hurtigt, bogstaverne skal stå alene eller sammen med tallene, men stadig adskillet af ";" eller "," og stadig plads til blanke tegn imellem. Takker
Avatar billede nielle Nybegynder
14. juni 2006 - 11:55 #12
Vil det siga at der nogen gange slet ikke er tal til stede?

F.eks.

a,b,12a,34;23;c
Avatar billede nielle Nybegynder
14. juni 2006 - 11:56 #13
Eller hvad med:

a;111m111,4
Avatar billede ihtezaz Praktikant
14. juni 2006 - 12:40 #14
ja helt rigtig
Avatar billede nielle Nybegynder
14. juni 2006 - 15:18 #15
Hmmm, jeg synes efterhånden at det er ligt vagt hvad der præcis anskiller et lovligt fra et ulovligt mønster. Men her er et bud:

^([a-zæøå0-9]+ *[,;] *)*[a-zæøå0-9]+*$
Avatar billede ihtezaz Praktikant
18. juni 2006 - 13:39 #16
sorry det varede så længe, jeg får en fejl, ved den sidste "uventet kvantor"
Avatar billede nielle Nybegynder
18. juni 2006 - 13:48 #17
^([a-zæøå0-9]+ *[,;] *)*[a-zæøå0-9]+$
Avatar billede ihtezaz Praktikant
18. juni 2006 - 13:54 #18
Den tillader desværre ikke bogstaver, når jeg skriver f.eks. 3243w3,433221 så giver den false
Avatar billede ihtezaz Praktikant
18. juni 2006 - 13:57 #19
hov, nej det var fordi jeg indtastede stor bogstav, for at den også tillader stor bogstaver skriver jeg vel bare ^([a-zæøåA-ZÆØÅ0-9]+ *[,;] *)*[a-zæøåA-ZÆØÅ0-9]+$
Avatar billede nielle Nybegynder
18. juni 2006 - 13:58 #20
Ja sådan kan man godt gøre det ... men der er en smartere måde. Hvilket sprog programmere du i?
Avatar billede ihtezaz Praktikant
18. juni 2006 - 14:02 #21
i vb til asp
Avatar billede ihtezaz Praktikant
18. juni 2006 - 14:04 #22
lige en anden ting, den tillader ikke whitespaces i starten og slutning af strengen
Avatar billede nielle Nybegynder
18. juni 2006 - 14:05 #23
Ok, så skal du kigge på IgoreCase:

Set set = New RegExp
re.Pattern = "^([a-zæøå0-9]+ *[,;] *)*[a-zæøå0-9]+$"
re.IgnoreCase

...
Avatar billede nielle Nybegynder
18. juni 2006 - 14:06 #24
Whitespace i start og slut:

re.Pattern = "^ *([a-zæøå0-9]+ *[,;] *)*[a-zæøå0-9]+$ *"
Avatar billede ihtezaz Praktikant
18. juni 2006 - 14:22 #25
Nu er den der næsten :), bare med untagelse af at den nu kun tillader whitespace i starten af strengen og imellem, men ikke i slutningen
Avatar billede nielle Nybegynder
18. juni 2006 - 14:27 #26
Min fejl. Sådan:

re.Pattern = "^ *([a-zæøå0-9]+ *[,;] *)*[a-zæøå0-9]+ *$"
Avatar billede ihtezaz Praktikant
18. juni 2006 - 14:28 #27
Kannon, takker mange gange. Smid et svar.
Avatar billede nielle Nybegynder
18. juni 2006 - 14:46 #28
Svar :^)
Avatar billede ihtezaz Praktikant
11. juli 2006 - 15:31 #29
nielle, der lige en meget lille ting ved denne expression, problemmet er at den skulle ikke tillade både at adskille med ";" og "," men kun enten den ene eller anden.
Avatar billede nielle Nybegynder
11. juli 2006 - 18:27 #30
Det er nu et lidt underligt format du tillader - på den ene side er der en masse friheder (såsom tilladte mellemrum), og på den anden side har du alligevel nogle strenge krav.

Værsgod (den bliver ikke ligefrem kortere ;^):

re.Pattern = "^ *[a-zæøå0-9]+ *$|^ *[a-zæøå0-9]+ *[,;] *[a-zæøå0-9]+ *$|^ *[a-zæøå0-9]+ *([,;]) *[a-zæøå0-9]+ *(\\1 *[a-zæøå0-9]+ *)*$"
Avatar billede ihtezaz Praktikant
11. juli 2006 - 22:09 #31
Den virker ellers fint, dog tillader den ikke at adskille vha. ;
Avatar billede nielle Nybegynder
11. juli 2006 - 22:16 #32
Det gør den da eller pænr nok hos mig:

123;456;789

accepteres som det skal.
Avatar billede ihtezaz Praktikant
11. juli 2006 - 22:40 #33
Jeg tjekker lige igen.
Avatar billede ihtezaz Praktikant
11. juli 2006 - 22:42 #34
Den virker helt ok, hvis jeg indtaster 2 id'er men når jeg indtaster 3 som du har gjort for oven, så tillader den ikke. det ret mærkeligt
Avatar billede nielle Nybegynder
11. juli 2006 - 22:44 #35
Så prøv lige med denne i stedet:

re.Pattern = "^ *[a-zæøå0-9]+ *$|^ *[a-zæøå0-9]+ *[,;] *[a-zæøå0-9]+ *$|^ *[a-zæøå0-9]+ *([,;]) *[a-zæøå0-9]+ *(\1 *[a-zæøå0-9]+ *)*$"
Avatar billede ihtezaz Praktikant
11. juli 2006 - 22:48 #36
Super kannon. :) takker.
Avatar billede nielle Nybegynder
11. juli 2006 - 22:57 #37
:^)
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