🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#479
Author: Steen Thomassen
Date: Wed, 20 Mar 2013 19:09
27 lines
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
#480
Author: Kim Ludvigsen
Date: Wed, 20 Mar 2013 19:45
23 lines
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
#481
Author: Steen Thomassen
Date: Wed, 20 Mar 2013 20:37
33 lines
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
#482
Author: Peter Makholm
Date: Thu, 21 Mar 2013 04:28
21 lines
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