Avatar billede alaflam Nybegynder
26. oktober 2005 - 16:59 Der er 7 kommentarer og
1 løsning

regulær udtryk

$a  = "a oiasjd asd ao o oo ias - d asd asd s -";
echo preg_replace('@^[\s]?[a-z]?[\s$]?@is', ' ', $a);

Jeg prøver på at slette alle bogstaver som står alene i koden.

dvs. jeg får det her printet ud
oiasjd asd ao oo iasd asd asd

Med den regulær udtryk jeg har skrevet, bliver det fjernet kun i starten, hvis jeg gøre sådan her:

echo preg_replace('@[a-z]?[\s$]?@is', ' ', $a);

så bliver det kun fjernet i midtten og slutning.

Nogen der kan hjælpe mig :)
Avatar billede barklund Nybegynder
26. oktober 2005 - 17:14 #1
Den nemme løsning hedder:

$a  = "a oiasjd asd ao o oo ias - d asd asd s -";
$a = ' '.$a.' ';
echo preg_replace('@\s[a-z]\s@is', ' ', $a);
$a = substr($a, 1, -1);

:)

--
Morten Barklund
Avatar billede alaflam Nybegynder
26. oktober 2005 - 17:43 #2
svar tak, jeg har lært noget idag :P
Avatar billede barklund Nybegynder
26. oktober 2005 - 18:07 #3
Ikke dermed sagt, at det ikke kan laves pænere - men det er den enkleste løsning :)
Avatar billede barklund Nybegynder
26. oktober 2005 - 18:10 #4
Og et svar :)
Avatar billede nielle Nybegynder
26. oktober 2005 - 18:45 #5
Brug \b i stedet for \s - så tager den også enlige bogstaver i enderne:

echo preg_replace('@\b[a-z]\b@is', ' ', $a);
Avatar billede alaflam Nybegynder
26. oktober 2005 - 19:30 #6
nielle jeg siger mange tak for din tip :)

Jeg fortrækker altid forklaring end resultat hvilket i begge to gjorde eller så har jeg selv forstået koden :P
Avatar billede barklund Nybegynder
26. oktober 2005 - 19:55 #7
Tark for points anyways, selvom det var nemmeste omvej, jeg foreslog :)
Avatar billede nielle Nybegynder
26. oktober 2005 - 20:52 #8
Lidt mere forklaring:

\s matcher whitespace og \b matcher word-bounderies - dvs. den ene eller den anden ende af et ord. Da der som regel er whitespace i begge ender af et ord, er det næsten det samme - lige med undtagelese af de tilfælde, hvor ordet netop ender pga. at det er i den ene eller den anden ende af strengen. I øvrigt bør min kode følges op af en trim() idet sådan noget som "et enkelt bogstav x" jo bliver til "et enkelt bogstav ".
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