Thread mein script verweigert ignore_case in utf-8 pattern matching (23 answers)
Opened by technix at 2013-06-02 16:19

Linuxer
 2013-06-02 22:05
#167907 #167907
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Und lässt Du die Textdatei auch als utf-8 kodiert einlesen?

Leider verrätst Du kaum etwas über den verwendeten Code, so dass man im Nebel stochern muss.

Ein als utf8 kodiertes Skript liest eine als utf8 kodierte Datei und prüft auf einen Match mit Umlauten:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#! /usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use utf8;

my $file = shift || die "no input file given.";

my $re_suche = qr{[äöü]}i;

# ohne ":encoding(...)" gibt es keinen Match
open my $fh, '<:encoding(UTF-8)', $file
   or die "open '$file' failed: $!\n";

while ( my $l = <$fh> ) {

    if ( $l =~ $re_suche ) {
        print "  Match\n";
    }
    else {
        print "NoMatch\n";
    }

}

close $fh;


Die Datendatei (utf8 kodiert):
Code: (dl )
Hallo Wörld.


Und das funktioniert bei mir. Beachte die Zeilen 11+12 im Programmcode...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread mein script verweigert ignore_case in utf-8 pattern matching