Thread groß- und kleinschreibung beim matchen von umlauten (4 answers)
Opened by miwieg at 2013-07-20 10:23

topeg
 2013-07-20 10:51
#168942 #168942
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Bei mir kommt das erwartetet raus:

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

use strict;
use warnings;
use utf8;

my $test = "äasdfsf";
print "MATCH A\n" if($test =~ /^[ÄÖÜ]/);
print "MATCH B\n" if($test =~ /^[äüö]/);
print "MATCH C\n" if($test =~ /^[ÄÜÖ]/i);
Code: (dl )
1
2
MATCH B
MATCH C


Unter welcher Kodierung hast du das Script es gespeichert? Woher kommt der zu testende String? Richtig funktioniert das mit den Umlauten erst, wenn der zu testende String und die Regexp in der selben ISO-8859-X Kodierung sind, oder besser in der Perl-internen Kodierung.

Wenn du den Code als UTF-8 gespeichert hast, und keine use utf8 benutzt nimmt Perl die Bytes und nicht die Byte-Paare in der Regexp. Dann Passiert das von dir beschriebene.

Also Immer schön use utf8 benutzen und alle eingaben Dekodieren. Entweder mit CPAN:Encode oder beim open :encoding(...)
Last edited: 2013-07-20 10:58:01 +0200 (CEST)

View full thread groß- und kleinschreibung beim matchen von umlauten