Thread View: dk.edb.system.unix
4 messages
4 total messages
Started by Steen Thomassen
Wed, 20 Mar 2013 19:09
gør første bogstav stort
Author: Steen Thomassen
Date: Wed, 20 Mar 2013 19:09
Date: Wed, 20 Mar 2013 19:09
27 lines
1892 bytes
1892 bytes
Hej Jeg har tit en opgave, hvor f�rste bogstav skal g�res til stor bogstav som fx: lars helle pia michael til Lars Helle Pia Michael Jeg har lavet en php-script til det, hvor jeg bruge preg_match til at splitte strengen op, konvertere bogstavet og samlet det igen, men det er ikke s�rlig generelt l�sning. Nogle gange er det lange inde i strengen det skal �ndres. Findes der en mere elegant l�sning til det? Det m� gerne v�re s� generelt at det kan bruges p� alle unicode-tegn med latinske bogstaver. Jeg vil bruge sed og/eller perl til det. Mvh Steen
Re: gør første bogstav stort
Author: Kim Ludvigsen
Date: Wed, 20 Mar 2013 19:45
Date: Wed, 20 Mar 2013 19:45
23 lines
2502 bytes
2502 bytes
Steen Thomassen skrev: > Jeg har tit en opgave, hvor f�rste bogstav skal g�res til > stor bogstav som fx: > Jeg har lavet en php-script til det, hvor jeg bruge > preg_match til at splitte strengen op, konvertere bogstavet > og samlet det igen, men det er ikke s�rlig generelt l�sning. > Nogle gange er det lange inde i strengen det skal �ndres. > Findes der en mere elegant l�sning til det? Hvordan har du t�nkt dig, at programmet skal kunne g�tte, hvilket tegn, du vil g�re stort, hvis det kan forekomme et vilk�rligt sted i strengen? Hvis det er f�rste bogstav i en streng er det imidlertidig nemt i PHP med ucfirst($foo). -- Mvh. Kim Ludvigsen Omfattende brugerguide for begyndere om ubuntu Linux: http://kimludvigsen.dk/linux
Re: gør første bogstav stort
Author: Steen Thomassen
Date: Wed, 20 Mar 2013 20:37
Date: Wed, 20 Mar 2013 20:37
33 lines
2736 bytes
2736 bytes
Den 20-03-2013 20:45, Kim Ludvigsen skrev:
> Steen Thomassen skrev:
>
>> Jeg har tit en opgave, hvor f�rste bogstav skal g�res til
>> stor bogstav som fx:
>
>> Jeg har lavet en php-script til det, hvor jeg bruge
>> preg_match til at splitte strengen op, konvertere bogstavet
>> og samlet det igen, men det er ikke s�rlig generelt l�sning.
>
>> Nogle gange er det lange inde i strengen det skal �ndres.
>> Findes der en mere elegant l�sning til det?
>
> Hvordan har du t�nkt dig, at programmet skal kunne g�tte, hvilket tegn,
> du vil g�re stort, hvis det kan forekomme et vilk�rligt sted i strengen?
med php: preg_match("/^(.)(.*)$/u", $fra, $opdel)
med option u kan den godt klare utf-8. Det er et sp�rgsm�l at formulere
det regulere udtryk, s� man rammer det rigtige sted - det jo afh�nge af
indhold.
> Hvis det er f�rste bogstav i en streng er det imidlertidig nemt i PHP
> med ucfirst($foo).
ucfirst kan ikke klar uft8 - selv ��� kan den ikke klar.
Men jeg brugt for dette i shell-scripts, hvor jeg gerne vil undg� at
bruge php.
Mvh
Steen
Re: gør første bogstav stort
Author: Peter Makholm
Date: Thu, 21 Mar 2013 04:28
Date: Thu, 21 Mar 2013 04:28
21 lines
2434 bytes
2434 bytes
Steen Thomassen <slet01_slet_steen@thomassen.net> writes:
>> Hvis det er f�rste bogstav i en streng er det imidlertidig nemt i PHP
>> med ucfirst($foo).
>
> ucfirst kan ikke klar uft8 - selv ��� kan den ikke klar.
Perls ucfirst h�ndterer korrekt unicode under de rette betingelser. Det
vil sige at din streng skal opfattes som en 'character string' af perl
(have UTF8-flaget sat). Se dokumentationen i 'perldoc -f lc'.
I replacement delen af en s/// kan du bruge \u med samme effekt, s� hvis
du vil have �ndret f�rste bogstav i alle ord er det noget med
s/\b(\w)/\u$1/g
Der er dog lige den bem�rkning at ucfirst (og \u) skifter til titelcase
og ikke uppercase. Dette er blandt andet relevant hvis du skal h�ndtere
det tyske Eszett.
//Makholm
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads