Frage zum Wiki-Artikel „Reguläre Ausdrücke“
Perlentaucher
- frage zum wiki
Das Script Reverse unter der Überschrift Suchen & Ersetzen mit Regulären Ausdrücken:
#!/usr/bin/perl
use strict;
use warnings;
my $Text = "Dieses Script dreht alle Wörter um";
$Text =~ s/(\w+)/reverse $1/ge;
print "$Text\n";
führte im gedit-Fenster zu folgender Asugabe:
seseiD tpircS therd ella Wöretr mu
Es ist sichtbar, dass das 'W' und das 'ö' nicht vertauscht wurden. Ich vermute einen Fehler dahinter und möchte ihn melden oder womöglich berichtigt werden, da ich einen Fehler gemacht haben könnte. Danke!
my $Text = "Dieses Script dreht alle Wörter um"; $Text =~ s/(\w+)/reverse $1/ge;
Es ist sichtbar, dass das 'W' und das 'ö' nicht vertauscht wurden. Ich vermute einen Fehler dahinter und möchte ihn melden oder womöglich berichtigt werden, da ich einen Fehler gemacht haben könnte.
Wichtig wäre natürlich die Frage: in welchem Zeichensatz hast du dein Testscript gespeichert...
Hallo beatovich,
Wichtig wäre natürlich die Frage: in welchem Zeichensatz hast du dein Testscript gespeichert...
Du meinst Zeichencodierung. Aber die Frage scheint berechtigt.
Bis demnächst
Matthias
Es handelt sich um die Zeichencodierung UTF-8 mit dem Zeilenende Unix/Linux.
P. S. Selbstverständlich meinte ich, zu Beginn dieses Threads, dass die Ausgabe in einem Terminalfenster erfolgte und nur das Programm mit gedit erstellt wurde.
Es handelt sich um die Zeichencodierung UTF-8 mit dem Zeilenende Unix/Linux.
Perl verwendet dazu eine interne Kodierung, die solltest Du einschalten. Wenn UTF-8-kodierte Zeichen im Script selbst als Literale eingesetzt werden, genügt das Pragma use utf8;
Beachte jedoch, dass vor der Ausgabe auf STDOUT die interne Kodierung wieder ausgeschaltet werden muss. Das geht z.B. mit einem use bytes;
vor der print()-Anweisung.
Siehe auch Encode.pm
MfG
Vielen Dank für die Auskunft! Nun bin ich wieder ein wenig schlauer.