Avatar billede Mik2000 Professor
20. november 2015 - 11:10 Der er 6 kommentarer og
1 løsning

Regular expression

Hej

Jeg vil gerne lave et regular expression som tjekker komma separeret lister

Den skal godkende
asd,sgsg,vkfb
dsfsd, dsfewr, sdffwre
dsf ewff, wefwef,ewfewf

Den må ikke godkende
asd,,asdasd,sadasd
sadasd, , asdasd,,asda
,sdfew,ewr,wer, ewrew

Dvs. normale komma separerede men ikke f.eks. start eller slut med komma eller 2 kommaer i midten
Avatar billede moddi100 Seniormester
20. november 2015 - 11:38 #1
<?php

$input = "asd,sgsg,vkfb
dsfsd, dsfewr, sdffwre
dsf ewff, wefwef,ewfewf";

if(preg_match("/(^\s+,|,\s+,|,\s$)/", $input))
    echo "Ikke OK";
else
    echo "OK";

?>

Såfremt hver linje skal behandles som én liste, kan du anvende m-modifieren på preg_match:
<?php

$input = "asd,sgsg,vkfb
dsfsd, dsfewr, sdffwre
dsf ewff, wefwef,ewfewf";

if(preg_match("/(^\s+,|,\s+,|,\s$)/m", $input))
    echo "Ikke OK";
else
    echo "OK";

?>
Avatar billede tryltryl Juniormester
20. november 2015 - 12:10 #2
Er den ikke for gavmild? Hvis man nu tjekker efter tomme grupper:

if(preg_match('/(^|,)\s*?(,|$)/m', $input))
    echo "Ikke OK";
else
    echo "OK";
Avatar billede Mik2000 Professor
20. november 2015 - 12:12 #3
Hej

Tak for svar. Den virker til at godkende ad,,asd,asd
Dvs. 2 kommaer efter hinanden
Avatar billede moddi100 Seniormester
20. november 2015 - 12:14 #4
Hovsa, vi prøver lige igen:
if(preg_match("/(^\s*,|,\s*,|,\s*$)/m", $input))
    echo "Ikke OK";
else
    echo "OK";
Avatar billede Mik2000 Professor
16. januar 2016 - 23:04 #5
Tæt på nu tror jeg. Men den vil vist have at den skal slutte med et komma nu
Avatar billede Mik2000 Professor
16. januar 2016 - 23:07 #6
Nej det var mig der dummede mig. Virker perfekt - læg et svar og så er der point.

Sry i øvrigt der var så lang svartid
Avatar billede moddi100 Seniormester
17. januar 2016 - 23:01 #7
svar!
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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