Schrift
[thread]6299[/thread]

Worte trennen

Leser: 1


<< >> 9 Einträge, 1 Seite
havi
 2004-06-01 15:21
#82867 #82867
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich muss Worte nach GROSSklein-Schreibung trennen.

Das ganze sieht wie folgt aus:
GernotHavranek # Ergebnis sollte Gernot Havranek sein
dasIst Havi # das ist Havi

Gruss
Gernot
Crian
 2004-06-01 15:26
#82868 #82868
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=havi,01.06.2004, 13:21]Hallo!

Ich muss Worte nach GROSSklein-Schreibung trennen.

Das ganze sieht wie folgt aus:
GernotHavranek # Ergebnis sollte Gernot Havranek sein
dasIst Havi # das ist Havi

Gruss
Gernot[/quote]
'GernotHavranek' -> 'Gernot Havranek'
'dasIst Havi' -> 'das Ist Havi'

?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use strict;
use warnings;

my @words = ('GernotHavranek', 'dasIst Havi');

print "'$_'\n" for @words;

s~(?<=[a-zäöüß])(?=[A-ZÄÖÜ])~ ~g for @words;

print "'$_'\n" for @words;


Ausgabe:

Code: (dl )
1
2
3
4
'GernotHavranek'
'dasIst Havi'
'Gernot Havranek'
'das Ist Havi'
\n\n

<!--EDIT|Crian|1086089445-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
havi
 2004-06-01 15:29
#82869 #82869
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Ja sorry, du hast recht...
Crian
 2004-06-01 15:31
#82870 #82870
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Lösung siehe oben, hab Deine Antwort nicht gesehen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
renee
 2004-06-01 15:32
#82871 #82871
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
my $var = 'diesIstEinTest';
$var =~ s/([A-Z][a-z]+?)/ $1/g;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2004-06-01 15:34
#82872 #82872
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=renee,01.06.2004, 13:32]
Code: (dl )
1
2
my $var = 'diesIstEinTest';
$var =~ s/([A-Z][a-z]+?)/ $1/g;
[/quote]

'DiesIstEinLangerTest' -> ' Dies Ist Ein Langer Test'

Wofür ist +? ? In welchem Fall würde + allein zu viel lesen?

Für Umlaute brauchst Du dann noch use locale; oder aber eine Variante wie oben...\n\n

<!--EDIT|Crian|1086089900-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
havi
 2004-06-01 15:38
#82873 #82873
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Vielen Dank!

Gruss
renee
 2004-06-01 15:49
#82874 #82874
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Crian: Ich habe Deine Antwort erst gesehen, als meine schon gesendet war...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2004-06-01 16:30
#82875 #82875
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Dacht ich mir schon. Ich finde ich darf trotzdem mäkeln ;)

Man könnte auch rätseln, ob es besser ist, es so zu machen, wie in meiner Lösung oben, also mit look behind und look ahead:

Code: (dl )
s~(?<=[a-zäöüß])(?=[A-ZÄÖÜ])~ ~g for @words;


oder ob es besser ist

Code: (dl )
s~([a-zäöüß])([A-ZÄÖÜ])~$1 $2~g for @words;


zu verwenden. Ich fange halt am liebsten nichts, wenn es sich nicht umgehen lässt.\n\n

<!--EDIT|Crian|1086093100-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 9 Einträge, 1 Seite



View all threads created 2004-06-01 15:21.