Thread Problem mit Match Anweisung und RegEx
(9 answers)
Opened by Corni_Cornflake at 2017-08-20 15:38
Wenn bei Split das Regex in Klammern ist, wird das auch mitgefangen.
Das kannst du mit Data::Dumper sehen. Code (perl): (dl
)
1 2 3 4 5 6 7 use Data::Dumper; my $normalText= "Bla bla blabla bla. Timo macht sein Zimmer sauber. Er vergisst das Staubsaugen."; my @saetze = split( /([.,:;?!])/,$normalText ); print Dumper \@saetze; ergibt: $VAR1 = [ 'Bla bla blabla bla', '.', ' Timo macht sein Zimmer sauber', '.', ' Er vergisst das Staubsaugen', '.' ]; Das gefangene Satzzeichen ist also nicht weg. Was du tun musst, ist das wieder zusammenzufügen. Ein Beispiel (mir fällt gerade nix anderes ein, kann sein, dass List::Util das besser kann). Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 my @saetze = split /([.,:;?!])/,$normalText; { # hier beginnt der lokale Code-Block my @temp; while (scalar @saetze) { # solange noch was im Array my $satz = shift @saetze; # hole Satz my $sz = shift @saetze; # hole Satzzeichen $satz .= $sz if defined $sz; # füge beide zusammen push @temp, $satz; # zwischenspeichern } @saetze = @temp; # zusammengefügtes wieder in Sätze-Array zurückspeichern } # Ende des lokalen Blocks Last edited: 2017-08-21 11:36:24 +0200 (CEST) |