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 -w #probevariablen $normalText= "Bla bla blabla bla. Timo macht sein Zimmer sauber. Er vergisst das Staubsaugen."; @saetze= split(/[(\.|,|?|\!|:|;)]/,$normalText); foreach $satz (@saetze) { @woerter= split(/ /,$satz); if ($satz=~ m/ /) { $satz=~ s/ //; } if ($satz!~ m/^(er|sie)$/gi) { foreach $wort (@woerter) { if ($wort=~ m/[A-Z].*/) { push(@nomen,$wort); } } } else { print "$satz\n"; } } foreach (@nomen) { print "$_\n"; }
if ($satz!~ m/er|sie/gi) {
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 -w use strict; #probevariablen my $normalText= "Bla bla blabla bla. Timo macht sein Zimmer sauber. Er vergisst das Staubsaugen."; my @felder= split(/(\.|,|\?|\!|:|;)/,$normalText); my @saetze = (); my @nomen = (); for(my $i = 0; $i <= $#felder; $i+=2) { push(@saetze, join('',$felder[$i], $felder[$i+1])); } foreach my $satz (@saetze) { if ($satz =~ m/\b(er|sie)\b/gi) { push(@nomen,$1); } else { print "$satz\n"; } } foreach (@nomen) { print "$_\n"; }
@saetze= split(/[(\.|,|?|\!|:|;)]/,$normalText);
@saetze = split( /([.,:;?!])/,$normalText );
@saetze = split( /(\.|,|:|;|\?|\!)/,$normalText );
@saetze = split( /(\.|,|:|;|\?|\!)/,$normalText );
@saetze = split( /([.,:;?!])/,$normalText );
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;
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
@saetze= split(/(?<=[\.,:\!?;])\s*/,$normalText);
1 2 3 4 5 6 7 8 9 10 11 12
#! /usr/bin/perl use strict; use warnings; use 5.010; my $normalText = "Bli. Bla. Blupp."; my @saetze = split( /(\.|,|:|;|\?|\!)/,$normalText ); say for @saetze;