Avatar billede kongfjong Nybegynder
07. august 2008 - 10:20 Der er 5 kommentarer og
1 løsning

Hjælp til regex

Hej, jeg sidder lige og prøver at forstå noget omkring regex i PHP. Der er dog et eksempel i min bog, jeg ikke kan få til at hænge sammen, som jeg håber I kan hjælpe mig med.

Følgende pattern: "/\S+/" burde i min verden betyde at den matcher alle de steder i min tekst, hvor der er 0 eller flere whitespaces. Men når jeg kører den med preg_match_all, f.eks. preg_match_all("/\S/", $text, $matches);, ender $matches ud med at indeholde alle ord. Det kan jeg ikke få til at hænge sammen.
Avatar billede kongfjong Nybegynder
07. august 2008 - 10:21 #1
Der skulle self stå preg_match_all("/\S+/", $text, $matches);
Avatar billede pidgeot Nybegynder
07. august 2008 - 10:28 #2
\s = match alle whitespace
\S = match alt andet end whitespace

preg_match_all returnerer de ting der matchede din regex. Hvis du brugte \s, ville du derfor få alle mellemrum (og andet der gælder som værende whitespace) fra preg_match_all. \S gør det modsatte - den giver dig alt der ikke er whitespace.

+'et gør at den skal matche så meget som muligt (greedy), hvorfor du ikke får tegnene individuelt.
Avatar billede kongfjong Nybegynder
07. august 2008 - 10:34 #3
Aaaahh okay, tænkte nok det var sådan noget, men her http://dk2.php.net/manual/en/regexp.reference.php står der noget andet nemlig:)
Avatar billede pidgeot Nybegynder
07. august 2008 - 10:38 #4
...hvor? *-)

\s
any whitespace character

\S
any character that is not a whitespace character
Avatar billede kongfjong Nybegynder
07. august 2008 - 10:47 #5
Ah jeg læste det som om at det var den ovenstående tekst der gjaldte:) Hvorfor ved jeg ikke:) Men tak;)
Avatar billede pidgeot Nybegynder
07. august 2008 - 10:47 #6
Og et 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